Variable global en VBA

Iqra Hasnain 21 junio 2023
Variable global en VBA

Presentaremos cómo podemos crear variables globales en VBA. También discutiremos las ventajas y desventajas de usar una variable global en VBA.

Variable global en VBA

Mientras trabajamos con variables en VBA, nos encontramos con situaciones en las que es posible que necesitemos usar las mismas variables en varias funciones. Pero una variable declarada dentro de una función no puede usarse fuera de esa función.

Para esto, declaramos variables globales en VBA. Las variables globales son las variables que se declaran al comienzo de cualquier macro.

Estas variables se definen fuera de la función y se utilizan en funciones o módulos. Las variables se declaran por palabra clave Public o Global.

Podemos declarar variables globales siguiendo los pasos que se muestran a continuación.

  1. Usamos la palabra clave Global o Public.
  2. Declare el nombre de la variable después de escribir la palabra clave.
  3. Para obtener la lista de tipos de datos, escriba como.
  4. Seleccione el tipo de datos que está involucrado en un código VBA.

Si necesitamos involucrar dos variables para submódulos de diferentes tiempos, entonces es preferible definir las variables globales explícitamente. Veamos un ejemplo en el que declararemos la variable global str y la usaremos en 2 subs diferentes, como se muestra a continuación.

Dim str As String

Sub firstSub()

str = "This is first Sub"
MsgBox (str)

End Sub

Sub secondSub()

str = "This is second Sub"
MsgBox (str)

End Sub

Producción:

variable global usando en 2 sub diferentes en VBA

Como podemos ver en el ejemplo anterior, cuando nuestro cursor está dentro de firstSub(), se muestra el mensaje del primer sub, y cuando nuestro cursor está dentro de secondSub(), se muestra el mensaje del segundo sub.

De esta manera, podemos usar la misma variable en múltiples subs. Si queremos introducir variables globales entre diferentes módulos, podemos escribir nuestro código como se muestra a continuación.

Dim globalVar As String

Sub firstSub()

globalVar = 10

End Sub

Sub secondSub()

MsgBox (globalVar)

End Sub

Producción:

variable global usando en 2 sub diferentes en VBA y obteniendo valor de firstSub

Como puede ver en el ejemplo anterior, cuando ejecutamos el código desde firstSub(), asigna el valor a la variable global. Cuando ejecutamos el código desde secondSub(), muestra ese valor.

Ahora analicemos las ventajas y desventajas de usar variables globales en VBA.

Ventajas de la variable global en VBA

Las principales ventajas de las variables globales son:

  1. Estas variables son accesibles globalmente ya que las variables globales se pueden usar para todas las funciones y módulos del código VBA.
  2. Solo necesitamos definir las variables globales una vez y luego podemos usarlas varias veces en un código VBA.
  3. Las variables nos mantienen alejados de la complejidad que implica escribir códigos extensos o la confusión generada al involucrar variables varias veces.
  4. Si declaramos variables constantes, la coherencia de nuestra macro VBA está asegurada.
  5. Un factor clave de las variables globales es su fácil mantenimiento.
  6. Dado que las variables se declaran solo una vez, se reduce el número de líneas en los códigos VBA. Tales tipos de códigos son fáciles de leer.

Ahora analicemos las desventajas de usar las variables globales en VBA.

Desventajas de la variable global en VBA

Las desventajas asociadas con las variables globales son:

  1. La depuración del código es complicada ya que las variables se definen explícitamente.
  2. Un cambio menor en cualquier variable en un punto implica el cambio en todos los puntos relacionados con la variable y degrada la funcionalidad del código VBA.
  3. La variable global depende del módulo principal, y necesitamos rediseñar cada módulo cada vez en el caso de que se utilicen varios módulos dentro del mismo código VBA.

Artículo relacionado - VBA Variable