Guía Completa sobre Variables en VBA: Aprende a Declararlas y Usarlas

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

Las variables son elementos fundamentales en cualquier lenguaje de programación, incluyendo VBA. Permiten almacenar y manipular datos, como números, texto y estructuras más complejas. Al declarar variables adecuadamente, optimizamos el uso de memoria y mejoramos la velocidad de ejecución del código.

Analogía de la Vida Real: Imagina que estás organizando un armario. Si lo haces de manera ordenada, podrás encontrar tus prendas rápidamente y aprovechar mejor el espacio. Lo mismo ocurre con las variables en programación: al gestionarlas correctamente, optimizamos su uso y capacidad.

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

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 consiste en instruir al sistema para reservar un espacio de memoria según el tipo de variable que se necesita. Aunque en VBA no es obligatorio declarar variables, hacerlo previene la ralentización del programa, ya que VBA no tendrá que determinar el tipo de variable cada vez que se encuentre con una no definida.

Tipos de Variables en VBA

Las variables en VBA ocupan diferentes cantidades de memoria según su tipo. A continuación, se presentan algunos de los tipos de variables más comunes:

Tipo de Variable Denominación en VBA Espacio Ocupado (bytes) Rango de Valores Ejemplo
Booleana Boolean 2 Verdadero o Falso Answer = True
Entero Integer 2 -32,768 ↔ 32,767 Cant = 5
Doble Precisión Double 8 ±1.79769313486232 × 10^308 Pi = 3.14159265
Moneda Currency 8 -922,337,203,685,477 ↔ 922,337,203,685,477 Monto = 5.5
Texto String 1 por carácter Cualquier texto Prod = «Carro»
Variable Especial Variant Varía Varía según el tipo de datos Total = Pi * Cant

VBA asigna automáticamente la categoría Variant a las variables no declaradas. Es recomendable declarar el tipo de variable para optimizar el uso de memoria y mejorar el rendimiento.

Niveles de Variables en VBA

En VBA, las variables pueden ser públicas (Public) o privadas (Private), dependiendo de su nivel de accesibilidad:

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

Las variables privadas pueden tener el mismo nombre en procedimientos diferentes, ya que no son compartidas. Por el contrario, las variables públicas mantienen su valor activo mientras se ejecute la macro.

¿Cómo Declarar una Variable en VBA?

Para declarar una variable, sigue estos pasos:

  1. Abre el editor de comandos de VBA (puedes consultar nuestro primer tutorial sobre macros en Excel).
  2. Utiliza la instrucción Dim para declarar la variable.

Ejemplo de Declaración:

Dim pi As Double

En este caso, estamos reservando espacio para la variable pi, que almacenará un número de doble precisión.

Mostrar el Resultado: Para imprimir el valor, utiliza MsgBox:

MsgBox(pi)

Consejos para el Uso de Variables en VBA

  • Para obligar a VBA a declarar siempre las variables, usa Option Explicit al principio de cualquier módulo. Esto te ayudará a evitar errores de declaración.
  • Si olvidas declarar una variable, VBA resaltará el error, facilitando su identificación y corrección.
  • Utiliza la combinación CTRL + Espacio para acceder a un menú de variables declaradas al escribir.

Sobre los Nombres de las Variables en VBA

Elige nombres descriptivos para tus variables, ya que esto facilita la comprensión del código. Algunas reglas a seguir son:

  • El primer carácter debe ser una letra.
  • VBA no distingue entre mayúsculas y minúsculas; Var y var son la misma variable.
  • No se permiten espacios ni ciertos símbolos en los nombres.
  • El máximo número de caracteres para un nombre de variable es 255.

¿Quieres saber más? Contáctanos…

Uso de la grabadora de macros de Excel

La grabadora de macros es una utilidad que te ayuda a dar los primeros pasos en el mundo de la programación en Visual Basic for Applications (VBA), y para los que tienen ya un camino recorrido en este mundo VBA, permite aclarar dudas sobre cómo hacer ciertas actividades repetitivas mediante la revisión de las instrucciones en el editor de comandos. Si quieres saber como se utiliza la grabadora de macros de Excel o como grabar una macro en Excel, estás en el sitio indicado.

Cuando actives esta utilidad, se grabará lo que hagas en el los programas de Office; puede ser utilizado en Excel y otros paquetes de Office como Word y PowerPoint. En este sencillo ejemplo que haremos a continuación, grabaremos como hacer automáticamente el cambio de formato de celdas y texto, así como desplazarnos entre celdas vecinas y como repetir la secuencia con sólo con hacer un Click.

Activar la grabadora de macros

Para activarla debes ir a la pestaña “DESARROLLADOR” y ubicar el icono de la grabadora de macros.

Figura 1. Ubicación de la grabadora de macros.

Alternativamente la puedes ubicar en la pestaña “VISTA” seleccionando el comando “Grabar Macro…” del menú “Macros”.

Figura 2. Ubicación alternativa de la grabadora de macros.

Preparar la grabación de la macro

Aparecerá una la ventana “Grabar macro”, allí le colocarás a tu macro el nombre que se desees. También tendrás la opción de asignarle una combinación de teclas que te permitirán correr tu macro de una forma rápida. Si no le asignas la “Tecla de método abreviado” podrás acceder a tu macro a través de otra forma que te la explicaremos más adelante.

A esta macro la denominaremos “Mi_Segunda_Macro” y su método abreviado será “CTRL + m”.

Figura 3. Grabar Macro.

Cuando presionemos Aceptar, se iniciará la grabación. Es importante saber que a partir de este momento, cualquier acción que hagamos dentro de Office: integradamente Word, Excel y los demás programas del paquete, será grabada.

Sabremos que la grabadora está corriendo porque en el lugar que aparecía “Grabar macro” ahora aparecerá “Detener Grabación”.

Grabar la macro de Excel

En esta macro, una vez hayas seleccionado la celda A1, grabaremos las siguientes acciones:

  • Cambiarle el relleno a la celda “A1” a color amarillo.
  • Seleccionar con el mouse o desplazarse con el teclado hasta la celda “B1” y modificarle el formato del texto colocándolo color Naranja.
  • Similarmente, pasar a la celda “C1” y cambiarle el color del texto a azul.
  • Repetiremos el paso con la celda combinada “B2:C2” al cambiarle el color del texto a Marrón.
  • Selecciona las celdas “A1:C2” y cámbiale el tipo y tamaño de letra a “Arial Narrow” 18 pt.
Figura 4. Antes y después de ejecutar la macro.

Cómo se detiene la grabación de la macro de Excel?

Una vez completadas todas las actividades que queremos dejar en la macro, es necesario detener la grabación presionando el comando “Detener grabación”.

Figura 5. Detener la grabación.

Revisar la secuencia de comandos en VBA

Tal y como vimos en el primer tutorial, podemos entrar al editor de comandos de VBA y ver lo que fue grabado. Esta actividad es opcional, sólo debes realizarla si necesitas complementar algo o si ya tienes cierta experiencia.

Figura 6. Editor de comandos de VBA.
Sub Mi_Segunda_Macro()
'
' Mi_Segunda_Macro Macro
'
' Acceso directo: CTRL+m
'
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("B1").Select
With Selection.Font
.Color = -16750849
.TintAndShade = 0
End With
Range("C1").Select
With Selection.Font
.ThemeColor = xlThemeColorAccent1
.TintAndShade = -0.249977111117893
End With
Range("B2:C2").Select
With Selection.Font
.Color = -16764058
.TintAndShade = 0
End With
Range("A1:C2").Select
Range("B2").Activate
With Selection.Font
.Name = "Calibri"
.Size = 18
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With
Range("A1").Select
End Sub

Ejecutar nuevamente la macro de Excel

La secuencia que acabas de grabar será repetida cada vez que ejecutes tu macro a partir del comando “Macro” que encontrarás en la pestaña “DESARROLLADOR”. Se mostrará un cuadro donde veras en forma de lista todas las macros que hayas grabado. Sólo deberás seleccionar la macro que desees utilizar y luego presionar “Ejecutar”.

Figura 7. Ubicación de macros grabadas.

También podrás ejecutar la macro mediante el método abreviado que le hayas asignado, en este caso lo colocamos como “CTRL + m”.

Alternativamente podremos acceder a la listas de macros grabadas a través del comando “Ver macros” que está ubicado en el menú “Macros” de la pestaña “VISTA”.

Figura 8. Ubicación alternativa de las macros grabadas.

Esta macro modifica el formato de las casillas; esta acción se repetirá independientemente del texto que esté en estas celdas, inclusive si las celdas están vacías. Puedes probar como funciona nuestra macro cambiando el texto y luego ejecutándola; veras que cada celda toma el formato de texto que le indicamos al grabar la macro.

Figura 9. Antes y después de ejecutar la macro con otro texto.

Quieres saber más? Contáctanos…

 

 

Mi Primera Macro en Excel

¿Qué es una macro de Excel?

Si eres un usuario de Excel seguramente te has encontrado en la necesidad de ejecutar tareas repetitivas. Pues bien, las macros permiten automatizar esas tareas repetitivas para ahorrarte tiempo y esfuerzo a la hora de trabajar en Excel, así que si quieres aprender como usarlas has llegado al sitio correcto. 

El lenguaje en el que se se escriben las macros de Excel se llama Visual Basic for Applications, más conocido como VBA. La buena noticia es que no tienes que ser un experto en programación para iniciar en este mundo.

En este primer tutorial te enseñaremos a crear tu primera Macro en Excel. Se trata de hacer aparecer un mensaje que diga «Hello World!». Para ello sigue los siguientes pasos:

Activar la pestaña de Desarrollador en Excel

En primer lugar, debemos estar seguros de tener activa la pestaña “DESARROLLADOR” en la cinta de opciones, ya que la misma dispone de opciones de interés para los programadores.

Para ello, abre un nuevo archivo de Excel y observa si esta pestaña está disponible.

En caso contrario, haz clic derecho en cualquier parte de la cinta de opciones y selecciona la opción “Personalizar la cinta de opciones…”. Luego activa la casilla de “Desarrollador” y presiona “Aceptar”.

Ingresar al editor VBA

El ingreso a al editor VBA puede darse por dos vías:
a) Mediante la combinación de teclas Alt + F11
b) Presionando el botón “Ver código” en la cinta de opciones “DESARROLLADOR”

Agregar un nuevo módulo en VBA

Dentro del entorno VBA, haz clic derecho en la carpeta de proyecto del libro de Excel (usualmente ubicada en la parte izquierda de la pantalla). Del menú desplegable selecciona Insertar / Módulo

Escribir el programa en VBA

Escribiremos un programa que emita el mensaje “Hello World!”. Para ello crearemos una subrutina (Sub) que llamaremos “MiPrimeraMacro”. El nombre de la subrutina no debe contener espacios ni caracteres especiales. El comienzo de la subrutina está denotado con la palabra “Sub”, y el final con la frase “End Sub” .

Dentro de la subrutina definiremos una variable de tipo “string” (hablaremos más adelante sobre los tipos de variables) que almacenará el texto a mostrar. A esta variable le asignaremos el nombre  “strSaludo”. El código debe lucir como se indica a continuación:

Sub MiPrimeraMacro()
     Dim strSaludo As String
   
     strSaludo = "Hello World!"
  
     MsgBox strSaludo
  
End Sub 
 

Ejecutar el programa en VBA

El programa los podemos ejecutar desde distintas vías:
a) Presionando la tecla F5
b) Presionando el botón de Ejecutar macro

c) Asignando la macro a un botón. Para ello ve a la pestaña “DESARROLLADOR” y selecciona “Insertar/Botón”. Luego haz clic en cualquier parte de la hoja para seleccionar la posición del botón. Excel preguntará por el nombre de la macro asociada a ese botón; selecciona “MiPrimeraMacro” y presiona aceptar.

Una vez que ejecutes la macro debe aparecer el siguiente mensaje:

¡Felicidades! Haz escrito tu primera macro.Guardar el libro Excel habilitado para macros

Asegúrate de guardar los documentos que contengan macros bajo la extensión “.xlsm” (habilitado para macros).

 

 

 

 

Quieres saber más? Contáctanos…