En esta clase, exploraremos uno de los conceptos fundamentales en cualquier lenguaje de programación: las variables. Aprenderemos qué son, cómo declararlas en VBA, los tipos más comunes y cómo trabajar con ellas.
Una variable es, esencialmente, un espacio que reservamos en la memoria de la computadora para guardar algún tipo de valor. Puedes imaginarla como una "bolsa" o una "caja" con una etiqueta (el nombre de la variable) donde puedes almacenar diferentes tipos de objetos (los datos).
En VBA (Visual Basic for Applications), el manejo de variables es crucial para crear macros dinámicas y útiles.
VBA maneja diferentes tipos de datos. Los más comunes que veremos en esta clase son:
Existen muchos otros tipos de datos en VBA (Boolean, Date, Object, etc.), pero por ahora nos enfocaremos en estos tres para sentar las bases.
Dim
Para usar una variable en VBA, primero debemos "declararla". Esto significa decirle a VBA qué nombre tendrá nuestra variable y qué tipo de dato va a almacenar. Para esto, usamos la palabra reservada Dim
.
Dim nombreDeLaVariable As TipoDeLaVariable
Por ejemplo:
Sub EjemploVariables()
Dim edad As Integer
Dim nombreCliente As String
Dim precioProducto As Double
End Sub
Dim
, Sub
, End
, If
, etc.).*
, +
, -
, /
(aunque el guion bajo _
sí está permitido y es útil para separar palabras, ej: nombre_cliente
).Una vez declarada una variable, podemos asignarle un valor usando el signo igual (=
).
Sub AsignarValores()
Dim edad As Integer
Dim saludo As String
Dim alturaMetros As Double
edad = 30
saludo = "Bienvenido al curso de VBA"
alturaMetros = 1.75
End Sub
" "
). Aunque VBA a veces permite comillas simples para otras cosas, para strings es estándar usar dobles.Cuando usas una variable en tu código (por ejemplo, para mostrarla en un mensaje), estás utilizando el contenido que tiene almacenado.
Sub MostrarVariables()
Dim miNombre As String
Dim miEdad As Integer
miNombre = "Mortal Programador"
miEdad = 100 ' ¡Un programador muy experimentado!
MsgBox miNombre ' Muestra el contenido de la variable miNombre
MsgBox miEdad ' Muestra el contenido de la variable miEdad
End Sub
Nota que al usar miNombre
o miEdad
en MsgBox
, no usamos comillas, porque queremos mostrar el valor que guardan, no el texto "miNombre".
A menudo querrás mostrar un mensaje que combine texto fijo con el valor de una variable. Para esto, usamos el carácter ampersand (&
) para "concatenar" o unir las partes.
Sub SaludoPersonalizado()
Dim nombreUsuario As String
nombreUsuario = "Ana"
MsgBox "Hola, " & nombreUsuario & "! Bienvenida."
' Resultado: Muestra un mensaje que dice "Hola, Ana! Bienvenida."
End Sub
Fíjate en los espacios dentro de las comillas ("Hola, "
y "! Bienvenida."
) para que el mensaje final se vea bien formateado.
Los comentarios son líneas de texto dentro de tu código que VBA ignora por completo. Son para ti o para otros programadores que lean tu código en el futuro. Ayudan a explicar qué hace una parte del código, por qué tomaste cierta decisión, o para dejar recordatorios.
En VBA, un comentario comienza con una comilla simple ('
). El editor de VBA generalmente los pinta de color verde para que los identifiques fácilmente.
Sub EjemploComentarios()
' Esto es un comentario y será ignorado por Excel.
Dim ciudad As String ' Declaro una variable para guardar la ciudad
ciudad = "Buenos Aires" ' Asigno un valor a la variable ciudad
' La siguiente línea mostrará la ciudad en un mensaje
MsgBox "Vivo en: " & ciudad
End Sub
A veces, tus macros no harán lo que esperas. ¡No te preocupes, le pasa hasta al mejor programador! La depuración (o "debugging") es el proceso de encontrar y corregir errores en tu código.
VBA tiene herramientas para ayudarte. Una muy útil es ejecutar tu código "paso a paso" para ver qué está sucediendo en cada línea.
Sub EjemploComentarios()
).Alternativamente, la tecla de atajo más común para esto es F8
.
Al presionar F8
repetidamente, verás cómo VBA resalta cada línea de código ejecutable justo antes de ejecutarla. Esto te permite ver el flujo de tu programa y, si colocas el cursor sobre una variable, a menudo podrás ver su valor actual.
Nota sobre F8: Las líneas que comienzan con una comilla simple (comentarios) y las líneas de declaración de variables (Dim ...
) no se "ejecutan" paso a paso con F8 en el sentido de que no son acciones directas que el procesador realiza; son más bien directivas para el compilador o el intérprete. VBA las saltará o las procesará internamente sin detenerse en ellas al usar F8.
Ahora te toca a ti. Intenta lo siguiente:
MiInformacion
.MsgBox
para mostrar un mensaje que combine toda esta información. Por ejemplo: "Mi película favorita es [Película], se estrenó en [Año] y le doy un [Calificación]/10."¡La práctica hace al maestro! Cuanto más experimentes con variables, tipos de datos y la función MsgBox
, más cómodo te sentirás con los fundamentos de VBA.