The question is, Why are they global? Are they only used in one place? Are they used in several modules, forms, etc? If you have to maintain a value to be used in several places then it needs to be a public variable. If used in one place then where you use it declare it there as private.
Give us an example so we can give you some clues.
They are global so that multiple procedures can modify their contents. However, I would like for other forms to be able to modify as well. The problem is they are only global throughout the form, and I would like for other forms to be able to modify the contents of the variables.
If they are global to a form then they are declared as private in the form and are not global.
Private x As String = ""
If you have them defined as:
Public x As String = ""
then they are global to the application.
I would control these variables and keep them private but make properties to pass data to and from the variable. This way you can check the input data for correctness(?).
Private x As String
Public Property newX() As String
Set(ByVal value As String)
If value.Substring(0, 1) = "z" Then
messagebox.Show("Don't use a string starting with a 'z'"
x = value