Variables globales de VBA

Algunas funciones se definen dentro de una función y se utilizan dentro de las funciones y algunas variables se definen fuera de las funciones y son utilizadas por todas las funciones y dichas variables se utilizan como Variables Globales, por ejemplo, las variables declaradas bajo la subfunción son conocidas como Variables Globales.

Variable global en Excel VBA

Declarar una variable parece bastante simple, pero para tener buenas manos sobre ellas, necesitamos comprender el alcance de esas variables. A menudo declaramos las variables para cada macro dentro del subprocedimiento cada vez. Pero al declarar una variable, podemos usarla en todas las macros en el mismo módulo, así como en los otros módulos del proyecto actual de VBA. En este artículo, le mostraremos cómo declarar variables globales en Excel VBA.

¿Qué son las variables globales en Excel VBA?

Las variables globales de VBA son variables que se declaran antes del inicio de cualquier macro en el módulo. Cuando las variables se declaran utilizando "Public" o "Global", se convierte en "Global Variable".

Las variables de subprocedimiento no se pueden utilizar en ningún lugar

Por lo general, declaramos la variable dentro de la subrutina en vba usando la palabra "Dim".

Mire la imagen de arriba. He declarado la variable "k" como un número entero dentro del subprocedimiento Global_Example1.

Si usamos esta variable dentro de este procedimiento Sub en cualquier momento. Sin embargo, no puedo usar esta variable en otro subprocedimiento, ya sea en el mismo módulo de clase en VBA o en otro módulo.

Como se muestra en la imagen de arriba, la variable “k” que se declara en el subprocedimiento Global_Example1 no puede usarse en el Subprocedimiento Global_Example2.

De manera similar, la variable “j” declarada en el subprocedimiento Global_Example2 no se puede usar en el Subprocedimiento Global_Example1 aunque ambos subprocedimientos estén en el mismo módulo.

¿Cómo declarar variable global en VBA?

A continuación se muestran las formas de declarar una variable global en Excel VBA.

# 1 - Las variables del módulo se pueden usar en cualquier subprocedimiento en el mismo módulo

Como hemos visto, no podemos usar las variables de subprocedimiento en ninguno de los módulos. Para que estén disponibles para todo el procedimiento Sub en el mismo módulo, necesitamos declarar las variables en la parte superior del módulo.

En la imagen de arriba, he declarado la variable al inicio del módulo solamente. He declarado la variable "MyNumber" como Integer en el Módulo 1 .

Una vez declarada la variable en la parte superior del módulo, podemos usar la misma variable para todos los demás procedimientos Sub en el mismo módulo, en este caso, podemos usar la variable “MyNumber” para todos los procedimientos Sub en el Módulo 1.

El problema es que no podemos usarlos en ninguno de los otros módulos. En este caso, la variable "MyNumber" que se declara en el Módulo 1 no se puede utilizar en el Módulo 2.

 # 2 - Las variables globales se pueden usar en cualquier subprocedimiento y también en cualquier módulo

Ahora hemos visto dos tipos de declaración de variables y el alcance de ellos durante el uso. Lo interesante es que podemos declarar la variable en cualquiera de los módulos y usarla para todos los procedimientos Sub en todos los módulos del mismo Proyecto VBA.

Para que la variable esté disponible para todos los procedimientos Sub en todos los módulos, necesitamos declarar la variable en la parte superior del módulo no usando la palabra “Dim” sino usando la palabra “Public” o “Global”.

En la imagen de arriba, puede ver que he usado la palabra "Público" para declarar la variable en lugar de nuestra palabra veterana "Dim".

En la captura de pantalla anterior, he declarado la variable en el Módulo 1. Tengo dos módulos más llamados Módulo 2 y Módulo 3.

Ya que he declarado la variable usando la palabra "Público" en la parte superior del módulo, ahora puedo acceder a estas variables en cualquier subprocedimiento en cualquier módulo del mismo libro de trabajo.

No solo "Público", sino que también podemos usar la palabra "Global" para declarar la variable.

Global y Public son las dos palabras clave para declarar la variable y hacerlas disponibles en todos los módulos en VBA.

Cosas para recordar

  • Una vez que la macro de Excel se ejecuta con una variable global, el valor de la variable es el mismo en todos los procedimientos Sub.
  • Es mejor mantener un módulo en particular para declarar variables globales en VBA y tener todas las variables en un módulo.
  • La única forma en que podemos restablecer el valor de la variable es restableciendo el código macro presionando el botón de parada.