Contenido
En VBA (Visual Basic for Applications), la instrucción Public se utiliza para declarar una variable o una constante que será accesible desde cualquier lugar del mismo proyecto. Eso significa que podrás acceder a esa variable o procedimiento desde cualquier módulo, formulario o control de usuario dentro del proyecto, a menos que otra variable con el mismo nombre sea declarada en un alcance más local.
Declarar una variable pública global
Si deseas que una variable esté disponible en todos los módulos, deberías declararla en la sección de declaraciones generales de un módulo estándar (no en una clase o un formulario), usando la palabra clave Public:
Public miVariableGlobal As Integer
Declarar una constante pública
De manera similar, puedes declarar una constante que será accesible en todo el proyecto usando Public:
Public Const MI_CONSTANTE As Double = 3.1416
Declarar un procedimiento público
Puedes hacer que un Sub o una Function estén disponibles para otros módulos utilizando Public. De nuevo, colocas el procedimiento en un módulo estándar:
Public Sub MiSubPublico()
' Código aquí
End Sub
Public Function MiFuncionPublica() As String
' Código aquí
MiFuncionPublica = "Hola, Mundo!"
End Function
Al declarar variables y procedimientos como Public, debes tener cuidado con el posible impacto en la organización de tu código y en el mantenimiento a futuro. Las variables globales pueden hacer que el diagnóstico de problemas sea más complejo porque cualquier parte del código puede cambiar su valor en cualquier momento. Por tanto, es una buena práctica minimizar el uso de variables globales siempre que sea posible, y en su lugar utilizar variables locales, pasando datos entre procedimientos mediante argumentos y valores de retorno.
Asegúrate de tener en cuenta las buenas prácticas de programación para evitar posibles problemas, como colisiones de nombres o dificultades en el seguimiento del flujo de datos dentro de tu aplicación. Un buen diseño mantiene la mayoría de las variables y procedimientos con el alcance más restringido necesario para su función.