En el desarrollo de macros con Visual Basic para Aplicaciones (VBA), comprender el ámbito de las variables es fundamental para gestionar correctamente la información. El ámbito define en qué partes del programa una variable es reconocida y puede ser utilizada.
Tipos de ámbito en VBA
En VBA para Excel, los tres ámbitos existentes para las variables son: Públicas, Módulo y Procedimiento.
1. Variables de Procedimiento (Locales)
Son declaradas dentro del procedimiento y sólo son conocidas dentro de él. Cuando definimos o declaramos una variable local con la instrucción Dim, la variable permanece en memoria sólo mientras se ejecuta el procedimiento en el que la hemos declarado. Cada variable es independiente de otro procedimiento, sólo se reconoce la variable dentro de su propio procedimiento respectivo.
2. Variables de Módulo
Una variable que es reconocida en todos los procedimientos en un módulo se denomina una variable de Módulo. Son declaradas en la cabecera del código, antes de todos los procedimientos. En el ámbito de módulo, no hay ninguna diferencia entre Dim y Private.
3. Variables Públicas (Globales)
Las variables públicas (Public) tienen el ámbito más amplio de todas las variables. Una variable pública se declara igual que una variable de ámbito de módulo, es decir, en la parte superior del módulo, encima de la primera definición de procedimiento. NO se puede declarar una variable pública dentro de un procedimiento.
Lea también: IVA 21% Excel
Cómo declarar una variable global
Puedes definir una variable con ámbito global utilizando la instrucción Public en lugar de Dim y definiéndola fuera de las subrutinas y funciones del módulo. Esta variable la puedes utilizar para lo que sea desde cualquier subrutina o función e incluso dentro de los UserForm. Las variables públicas pueden usarse en cualquier procedimiento del proyecto.
Tabla de comparación de ámbitos
- Dim (en procedimiento): Ámbito local, solo vive durante la ejecución del sub.
- Dim/Private (en cabecera): Ámbito de módulo, disponible para todos los subs del mismo módulo.
- Public (en cabecera): Ámbito global, disponible para todos los módulos y formularios del proyecto.
Buenas prácticas en la declaración de variables
La aplicación será más eficaz si se declaran las variables explícitamente y con un tipo de datos específico. Si no desea que Visual Basic realice declaraciones implícitas, puede colocar la instrucción Option Explicit en un módulo antes de cualquier procedimiento. Esta instrucción requiere declarar explícitamente todas las variables en el módulo.
Se pueden declarar variables como uno de los siguientes tipos de datos: Booleano, Byte, Entero, Long, Moneda, Single, Double, Fecha, Cadena, Objeto o Variant. Si no se especifica un tipo de datos, el tipo de datos Variant se asigna de forma predeterminada, aunque las variables de tipo Variant necesitan más recursos de memoria que la mayoría de las otras variables.
Lea también: Guía IVA reducido
Lea también: ¿Cómo localizar tus XML del SAT?
