Variables en VBA

¿Qué son las variables en VBA y por qué se usan?

En términos prácticos, las variables son elementos que permiten operar en un código en cualquier lenguaje de programación: números, letras, vectores, matrices. Las variables ocupan un espacio en la memoria de nuestro computador, y su buen uso impactará positivamente en la velocidad del código. Es esta la razón por la que traemos el tema a este tutorial.

Haciendo un símil con la vida real, cuando nos disponemos a guardar la ropa en una gaveta o armario, la podemos llenar de muchas cosas atendiendo la limitación física del espacio, pero si ordenamos correctamente, es muy probable que podamos almacenar más ropa en ella y con toda seguridad será más fácil encontrar algo que se desee; esto es lo que ocurre con los computadores: si almacenamos las variables adecuada y ordenadamente, optimizaremos su uso y tendremos mayor capacidad de almacenar más información y manejarla de mejor manera.

Figura 1. El buen manejo de las variables contribuye con el orden y la eficiencia del código.

¿Qué es la declaración de variables en VBA?

La declaración de variables es una actividad en la cual se emite la instrucción al computador de reservar cierta cantidad de memoria para una determinada variable según su tipo.

Algunos lenguajes de programación exigen declarar las variables de forma obligatoria, sin embargo, la flexibilidad de VBA permite proceder sin este paso, aunque debemos tener en mente que, cada vez que el computador se encuentre con una variable no definida, VBA tendrá que pausar momentáneamente la ejecución del programa para decodificar el tipo de variable adecuada en cada caso, lo cual se traduce en trabajos repetitivos e innecesarios que debe hacer el computador y que a su vez llevan tiempo. En tal sentido para ahorrar tiempo y memoria, es muy buena práctica declarar las variables.

Nuestras primeras macros serán cortas y sencillas, sin embargo queremos enseñarte las mejores técnicas de programación, por ello nos tomaremos unos minutos con este tutorial para asentar bases firmes en tus conocimientos de VBA.

Tipos de variables en VBA

Como ya fue descrito, una variable ocupa un espacio en la memoria del computador de acuerdo a su tipo. Acá tenemos una lista de las variables más usadas comúnmente por los programadores en VBA, como lo son las variables Boolean, Integer, String, Variant, entre otras, con información adicional de interés.

Tipo de variableDenominación en VBA Espacio ocupado (byte) Rango de valores Ejemplo
Booleana Boolean 2 Verdadero o Falso Answer= TRUE
Entero Integer 2 –32.768 ↔ 32.767 Cant= 5
Objeto Object 4 Cualquier objeto Celda(“A1”)
Doble precisión Double 8 Positivos:
4,94×19-324 ↔ 
1,79×19308
Negativos:
-1,79×19308 ↔ 
-4,94×19-324
Pi= 3.14159265
Moneda Currency 8 –922.337.203.685.477 ↔
922.337.203.685.477
Monto= 5.5
Fecha Date 8 01/01/0100 ↔ 31/12/9999 BD= 09/08/1985
Texto (cadena de caracteres) String 1 por caracter Cualquier texto Prod= “Carro”
Variable especial Variant Varía Varía según el tipo de datos Total= Pi*Cant

VBA le asigna por defecto a una variable no declarada la categoría Variant o variable especial. Cada vez que sea necesario operar con alguna variable de este tipo, el computador deberá revisar si en ella está almacenado un número (inclusive revisaría el tipo de número: real o entero), texto, fecha u otro. Lo ideal es ahorrarle ese trabajo el computador y hacerle saber de antemano cuanta memoria debe reservar para cada variable, y es aquí donde se fundamenta la importancia de esta actividad.

Niveles de variables en VBA

Dentro del Visual Basic for Applications, tendremos la opción de organizar nuestros macros en diferentes niveles: módulos, funciones y rutinas. Las variables empleadas en cada nivel pueden ser públicas (Public) o privadas (Private):

Tipo de variable Usada en:
Privada Un mismo procedimiento (rutina o función) para un mismo modulo
Pública Todos los procedimientos de todos los módulos

Es importante saber que dos variables privadas diferentes pueden tener el mismo nombre y ser utilizada en dos procedimientos diferentes porque estas variables ¡no son compartidas! Así que cuando un procedimiento termine, el valor almacenado en la memoria para esa variable será desechado. Caso contrario con las variables públicas en las que el valor permanecerá activo mientras esté corriendo tu macro, independientemente si estas en un módulo u otro.

Normalmente se viene a la mente esta pregunta: ¿Por qué no emplear variables públicas todo el tiempo? La respuesta se vendrá haciendo más clara conforme nuestros programas vayan siendo más complejos.

Un ejemplo típico podría ser cuando tratemos de ubicar la última fila ocupada de un libro, es una actividad muy común; es probable que en una macro debamos hacer esta actividad varias veces, en este sentido, si no queremos cometer un error, lo más recomendable es que cuando terminemos de correr esa función la variable se borre automáticamente, ya que de lo contrario estaríamos obligados a “reiniciar” los valores; para ello, la mejor practica seria que esa variable sea privada.

Probablemente esto no se vea tan claro aún, sin embargo, estamos seguros de que lo iremos entendiendo conforme nos vayamos adentrando en el mundo de la programación VBA.

¿Cómo declarar una variable en VBA?

  • Lo primero que debemos hacer es abrir el editor de comandos de VBA (puedes referenciarte a nuestro primer tutorial).
  • Para hacer la declaración, debemos seguir la siguiente estructura, que comienza con las instrucción Dim:
Instrucción de declaración Variable Como Tipo de variable

Ejemplo:

Dim pi As Double

Es muy importante que identifiques el tipo de variable que deseamos almacenar; en este caso, tal y como lo vimos previamente, el número pi se puede categorizar como doble precisión (Double).

  • Finalmente imprimimos el resultado, en este caso a través de un mensaje en pantalla, siguiendo la estructura según se muestra:

Ejemplo:

MsgBox(pi)
Figura3. Declaración de variable de doble precisión.
Sub Tutorial3b_Variables()
Dim pi As Integer
pi = 3.141592
MsgBox (pi)
End Sub

Algunos tips de las variables en VBA

Para que el VBA nos obligue a declarar siempre las variables, y así evitemos errores de declaración por defecto y uso de variables públicas y privadas inadecuadas, debemos escribir Option Explicit antes de cualquier rutina o función de cualquier módulo, tal y como se muestra:

Figura 6. Instrucción de declaración explicita de las variables.

En caso de que asignemos la opción explicita e involuntariamente obviemos declarar una variable, nos aparecerá un error de definición de variable que será muy fácil de identificar, pues el mismo VBA nos resaltarán la variable en cuestión; sólo tendremos que declararla al principio del nuestra rutina o función según su tipo.

Figura 7. Error de falta de definición de variable.

Otra ventaja de declarar variables mediante la instrucción Dim es que podemos hacer aparecer un menú con la lista de variables declaradas, lo cual nos ayuda a escoger o escribir adecuadamente la variable que deseamos referenciar. Este menú aparece cuando escribimos (al menos) la primera letra de la variable y presionamos CTRL + la barra espaciadora del teclado. Observarás en la lista varios elementos, pero distinguirás las variables declaradas en la lista con un icono que tiene una mano, que identifica que la misma fue una entrada realizada por el usuario.

Sobre los nombres de las variables en VBA

El computador no asocia una variable a un elemento físico, químico, económico o mecánico en particular, por lo tanto la principal regla es colocar nombres que sean representativos de la variable a tratar, ya que debemos recordar que los ¡programadores somos humanos! y nosotros somos propenso a equivocarnos. Un computador será, sin problemas, capaz de diferenciar variables cuyos nombres sean por ejemplo mmmmnmmm y otra mmmmmmmm. Como verás éstos son nombres diferentes, pero a la vez muy parecidos, y es muy probable que nos causen cierta confusión.

Otras reglas sobre los nombres de las variables:

  • El primer carácter del nombre de la variable debe ser siempre una letra, aunque después utilices combinación con números y signos
  • Aunque nemotécnicamente es válido, VBA no reconoce la diferencia entre mayúsculas y minúsculas, por lo tanto nombres como “Var” y “var” serán reconocidas como una misma variable; de hecho si en nuestro programa utilizamos una declaración adecuada, el mismo VBA hará una corrección y llevará estas dos variables a una misma manera.
  • No es permitido el uso de espacios, operadores matemáticos, puntos ni símbolos como numeral (#), Dólar ($), porcentaje (%) o cierre de exclamación (!) entre otros.
  • Aunque parezca poco relevante, como cultura general, el máximo número de caracteres en el nombre de una variable será 255.

Quieres saber más? Contáctanos…

Variables en VBA

También te puede interesar

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *