Variables globales de Excel VBA

Por lo general, declaramos cualquier variable usando la palabra DIM y este es el mejor método directo para hacerlo. Pero las variables declaradas usando DIM solo pueden usarse dentro del mismo módulo. Si tratamos de usar esta variable definida usando DIM, será aplicable para el módulo bajo el cual se está declarando. ¿Qué pasa si queremos usar una variable en cualquier módulo o proyecto? ¿Qué no puede ser posible si seguimos usando DIM para definir esa variable?

En ese caso, tenemos una opción secundaria definiendo la variable por palabra Global o Público en VBA. Las variables VBA Global o Public son aquellas variables que se declaran al comienzo de la subcategoría con la ayuda de Option Explicit. Cualquier cosa que no hagamos o no podamos hacer en las subcategorías, se hacen antes de eso en la Opción explícita.

¿Cómo declarar variables globales en VBA?

A continuación se muestran los diferentes ejemplos para declarar una variable global en Excel usando el código VBA.

Puede descargar esta plantilla de Excel de variables globales de VBA aquí - Plantilla de Excel de variables globales de VBA

Variables globales de VBA - Ejemplo # 1

En este ejemplo, veremos cómo se pueden usar diferentes subcategorías como un solo módulo sin usar palabras globales o públicas para definir ninguna variable. Para esto, necesitaríamos un módulo.

  • Vaya al menú Insertar y haga clic en Módulo como se muestra a continuación.

  • Ahora escriba la subcategoría en cualquier nombre como se muestra a continuación.

Código:

 Sub Global_Variable () End Sub 

  • Ahora use DIM para definir cualquier tipo de variable. Aquí hemos elegido el alfabeto A como Cadena .

Código:

 Sub Global_Variable () Dim A como String End Sub 

  • Ahora cree otra subcategoría en el mismo módulo como se muestra a continuación.

Código:

 Sub Global_Variable () Dim A As String End Sub Sub Global_Variable6 () End Sub 

  • Ahora, en la segunda subcategoría, defina otra variable B usando DIM como String.

Código:

 Sub Global_Variable () Dim A como String End Sub Sub Global_Variable6 () Dim B como String End Sub 

Como se muestra arriba, las variables A y B definidas en ambas subcategorías no se pueden usar en la región del otro. Esos serán aplicables solo en su propia subcategoría.

  • Ahora para que esto funcione, escriba Option Explicit encima de la primera subcategoría como se muestra a continuación.

Código:

 Opción Explícita Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

  • Ahora podemos definir nuestra variable que se utilizará en las dos subcategorías que tenemos a continuación. Así que ahora considere escribir cualquier variable que diga A como String usando DIM.

Código:

 Opción Dim explícito A como cadena Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

Como hemos definido la variable, todas las subcategorías estarán en ese módulo y esto sería aplicable a todo el código de ese módulo solamente. Y si tratamos de llamar a las variables definidas en este módulo a otro módulo, entonces nos daría el error.

Variables globales de VBA - Ejemplo # 2

En este ejemplo, veremos cómo usar la palabra global o pública para definir cualquier variable en Excel VBA. Para esto, utilizaremos el código que hemos visto en el ejemplo-1.

Usaremos la parte inferior del código para la declaración de variable global o pública.

Código:

 Opción Explícita Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

Como hicimos en el ejemplo-1, donde hemos declarado la variable común que se usaría en ambas subcategorías, debajo de la Opción explícita. En el ejemplo, declararemos también la Variable global debajo de la Opción explícita.

Como ya tenemos nuestro código listo, podemos continuar directamente declarando variables usando Global . Ahora, en la opción siguiente, escriba explícitamente Global lo mismo que solíamos hacer con DIM y seleccione una variable de elección. Aquí estamos eligiendo el alfabeto A como se muestra a continuación.

Código:

 Opción Explícita Global A Sub Global_Variable () Dim A como String End Sub Sub Global_Variable6 () Dim B como String End Sub 

Ahora elegimos cualquier tipo de variable para serlo. Como ya hemos usado String en el ejemplo anterior, también usaríamos lo mismo aquí.

Código:

 Opción Explícita Global A como String Sub Global_Variable () Dim A como String End Sub Sub Global_Variable6 () Dim B como String End Sub 

Esto completa nuestro proceso de declaración de variable global. Ahora podemos usar esto en cualquier módulo, cualquier proyecto solo como String. Antes de usarlo, elimine la variable declarada anteriormente, luego el código se verá como se muestra a continuación.

Código:

 Opción Explícita Global A como cadena Sub Global_Variable () End Sub Sub Global_Variable6 () End Sub 

Ahora asignemos algo de texto a la variable A definida en ambas subcategorías. Estamos eligiendo "Prueba1" y "Prueba2" para la variable A en ambas subcategorías como se muestra a continuación. Y también hemos elegido MsgBox para mostrar los valores almacenados en la variable A.

Código:

 Opción Explícita Global A As String Sub Global_Variable () A = "Test1" MsgBox A End Sub Sub Global_Variable6 () A = "Test2" MsgBox A End Sub 

Ahora ejecute el código presionando la tecla F5 o haciendo clic en el botón reproducir para ver el resultado.

Recibiremos el mensaje como "Prueba1" como se muestra arriba. Es porque habíamos mantenido nuestro cursor en la primera subcategoría.

Ahora coloque el cursor en cualquier lugar de la segunda subcategoría y vuelva a ejecutar el código. Ahora obtendremos el cuadro de mensaje con el mensaje "Test2" como se muestra a continuación.

Así es como podemos crear y definir una variable una vez con la ayuda de Global y que puede usarse en cualquier módulo, cualquier clase y en cualquier proyecto. Podemos usar Public también en lugar de Global como se muestra a continuación. Y esto dará el mismo resultado que obtuvimos al usar Global.

Código:

 Opción Público explícito A As String Sub Global_Variable () A = "Test1" MsgBox A End Sub Sub Global_Variable6 () A = "Test2" MsgBox A End Sub 

Ventajas de la variable global VBA

  • Ahorra tiempo al declarar las múltiples variables cuando sabemos, es posible que necesitemos definir el mismo tipo de variable nuevamente en diferentes módulos o subcategorías.
  • Al usar Global o Public en la definición de un proceso variable, nuestro código se vuelve más pequeño ahorrando tiempo y espacios.
  • Reduce la complejidad cuando estamos escribiendo el código enorme y puede confundirse entre el uso de diferentes variables en diferentes módulos o subcategorías.

Contras de la variable global VBA

  • Si hacemos algún cambio en la variable Global, esos cambios se implementarán en todos los lugares donde se use, causando el problema en la funcionalidad del código escrito.

Cosas para recordar

  • Global y Public se pueden usar indistintamente con la misma funcionalidad.
  • Si no queremos usar la variable Global, entonces podemos seguir el proceso como se muestra en el ejemplo-1 para definir la variable. Pero eso se limitaría al mismo módulo.
  • Las variables globales se pueden usar en cualquier módulo, cualquier subcategoría, cualquier clase o en cualquier proyecto.
  • Una variable global da la salida del código donde hemos mantenido el cursor. No ejecutará el código completo de una vez dando toda la salida uno por uno.

Artículos recomendados

Esta es una guía de las variables globales de VBA. Aquí discutimos cómo declarar variables globales en Excel usando el código VBA junto con algunos ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. VBA UserForm
  2. Resolver ecuaciones en Excel
  3. Hoja de activación de VBA
  4. ¿Cómo editar la lista desplegable en Excel?

Categoría: