No confundas gimnasia con magnesia: Una cosa son los procedimientos y otras las variables, las variables en un procedimiento (las que declaras adentro), sólo son para usarse dentro del procedimiento, las variables globales se declaran afuera de los procedimientos, y en su declaración se define su, cómo decirlo, ámbito:
Public miOtraVariable as Integer '<----- Variable global pública, para usarse dentro del módulo y otros módulos en el proyecto.
Dim miVariable as Integer '<---- Variable global, pero privada, para usarse dentro del Módulo en el que se declara.
Public Sub miProcedimiento() 'Procedimiento público, para usarse en todos los módulos del proyecto.
Dim variableLocal as Integer '<--- Variable local, para usarse dentro del procedimiento, así sea público o privado (el procedimiento).
End Sub
Private Sub miOtroProcedimiento() 'Procedimiento privado, para usarse sólo dentro del módulo en que se declara.
Dim variableLocal as Inteher '<--- Otra variable local, sólo sirve dentro del procedimiento.
End Sub
Sub otroProcedimientoMas() 'Éste procedimiento también es público, para usarse en cada módulo del proyecto.
Dim variableLocal as Inteher '<--- Otra variable local, sólo sirve dentro del procedimiento.
End Sub
¡Saludos!