Well, variable scope is a big subject and you'll probably be best served reading some reference material.
Basically, you can declare a variable as publically accessible, but if this was within the scope of a userform however, it would be available for as long as the userform was in memory. Userform.show followed by Useform.hide would keep it in memory, but Unload Userform would dispose of it and any publicall accessible variables therein.
A module is a bit different within Excel and this is where all of your variables should be put that you want to be accessible by all.
I think however that you're probably over-engineering the solution to whatever problem you may have.
I programme Excel daily for a living, and I very very rarely have cause to use a publically accessible variable.
Much better to centralis(z)e functions that take data in the form of parameters, and return a variable to your calling procedure. Or, make use of Class Modules and basic-inheritance to better control the scope of data and variables.