Variables públicas de VBA

Variables públicas en VBA

Las “Variables públicas” en VBA, como su nombre indica, son variables que se declaran para usarse públicamente para todas las macros que escribimos en el mismo módulo, así como también en diferentes módulos. Entonces, cuando las variables se declaran al inicio de cualquier macro se denominan “Variables públicas” o “Variables globales”.

¿Cómo declarar variables públicas en VBA?

Por lo general, iniciamos el subprocedimiento de VBA y dentro del subprocedimiento declaramos nuestras variables. Esta es la práctica común que todos hemos hecho hasta este artículo.

Puede descargar esta plantilla de Excel de variables públicas de VBA aquí - Plantilla de Excel de variables públicas de VBA

Cada vez que escribimos un nuevo subprocedimiento, declaramos nuevas variables con tipos de datos asignados. Pero hoy nos despediremos de las variables repetitivas en los subprocedimientos.

Recordemos el estilo antiguo, a continuación se muestra el código que he escrito con una sola variable.

En el subprocedimiento “Public_Variable” he declarado esta variable. Ahora no puedo usar ninguno de los otros módulos.

Ahora en el subprocedimiento “Public_Variable1” no podemos usar la variable “Var1” que fue declarada en el primer subprocedimiento “Public_Variable”. Ésta es la limitación de declarar variables dentro de los subprocedimientos.

# 1 - Variables de nivel de módulo

Como todos sabemos, escribimos macros en módulos, podemos insertar varios módulos. Podemos declarar dos tipos de “Variables públicas” en VBA, uno es usar las variables para todos los subprocedimientos en el mismo módulo y el segundo es usar las variables para todos los subprocedimientos en todos los módulos.

Primero, veremos declarar variables públicas en VBA a nivel de módulo.

Para usar las variables para todos los subprocedimientos en el mismo módulo, necesitamos declarar las variables en la parte superior del módulo antes de iniciar cualquier macros.

A continuación se muestra la captura de pantalla de ejemplo para su comprensión.

Como podemos ver en la imagen de arriba, he declarado dos variables antes de iniciar cualquier macro en el módulo. Ahora, estas dos variables se pueden usar en cualquier número de macros en este módulo.

Dentro del subprocedimiento comienza a escribir el nombre de la variable, puede ver que la lista de IntelliSense mostrará los nombres de las variables.

Ahora podemos usar estas variables en todas las macros que escribimos en “Módulo1”.

Estas variables están limitadas para su uso en este módulo únicamente. Por ejemplo, ahora insertaré un módulo más y escribiré una nueva macro.

En Module2 no puedo usar esas variables que hemos declarado en “Module1”.

Entonces, ¿cómo podemos hacer públicas estas variables en VBA para usar en todos los módulos y en todos los subprocedimientos?

# 2 - Declarar variables úsalas públicamente

Regrese a “Módulo1” en este módulo hemos declarado variables antes de comenzar a escribir la forma de la macro y también qué mundo hemos usado para declarar esas variables.

Nuestra forma tradicional de usar la palabra "DIM" es que hemos declarado estas variables.

Cuando usamos solo la palabra “DIM”, solo se limita a usarse en todas las macros pero en el mismo módulo.

En lugar de la palabra "DIM", necesitamos usar la palabra "PUBLIC" o "GLOBAL" para que estén disponibles para su uso en todos los módulos de macros.

He usado la palabra "Global" para hacer pública la declaración de variable. También puede utilizar la palabra "Público".

Entonces, al usar las palabras "Global" y "Public" podemos declarar variables que se pueden usar para todas las macros en los módulos.

Cosas para recordar

  • Es una buena práctica declarar las variables públicamente, pero necesita una amplia experiencia antes de declararlas.
  • Una vez que las macros comienzan a ejecutarse, el valor de la variable de la macro será el mismo.
  • Asigne el valor particular a la variable dentro de la macro específica solo para evitar cualquier tipo de confusión.