2. Variables y Tipos de Datos
En esta lección aprenderás a:
- Declarar variables con
Dimy entender por qué es buena práctica. - Elegir el tipo correcto:
Integer,Long,Double,String,Boolean. - Activar
Option Explicitpara evitar errores silenciosos. - Leer y escribir valores de celdas usando variables.
¿Por qué usar variables?
Una variable guarda un dato en memoria con un nombre descriptivo. Dim la declara y le asigna un tipo:
Tipos de datos más usados
Vista tipo Excel: la primera fila muestra las letras de columna; la primera columna muestra los números de fila. En las celdas con fórmula (=...), cada referencia lleva un color distinto. Clic en la referencia: resalta solo esa celda. Clic en el resto de la celda (por ejemplo el = o los operadores): resalta todas las celdas citadas. Repetir el mismo gesto sobre lo ya resaltado lo oculta.
Tipos de datos en VBAResumen
Evita Variant salvo que sea necesario: consume más memoria y puede ocultar errores de tipo.
| A | B | C | |
|---|---|---|---|
| 1 | Tipo | Rango / Descripción | Cuándo usarlo |
| 2 | Integer | −32 768 a 32 767 | Contadores pequeños, índices de bucles |
| 3 | Long | −2 mil millones a 2 mil millones | Números de fila grandes, cantidades sin decimal |
| 4 | Double | Decimal de doble precisión | Precios, porcentajes, cálculos financieros |
| 5 | String | Texto de cualquier longitud | Nombres, categorías, mensajes |
| 6 | Boolean | True o False | Banderas, resultados de condiciones |
| 7 | Date | Fechas y horas | Trabajar con Now(), cálculos de días |
| 8 | Variant | Cualquier tipo (menos eficiente) | Solo cuando el tipo es desconocido |
Option Explicit
Escribe Option Explicit en la primera línea del módulo para que VBA exija declarar cada variable antes de usarla:
Leer y escribir valores de celdas
Practica en Excel
Abre Excel (o copia los datos con el botón de la tabla), sigue los pasos y comprueba el resultado en tu hoja.
- Abre el editor VBA (Alt + F11) y escribe Option Explicit al inicio del módulo.
- Declara variables de tipo Double, String y Boolean y asígnales valores con Debug.Print.
- Escribe la Sub CalcularDescuento() con un precio en B2 y ejecútala.
- Intenta usar una variable sin declararla con Option Explicit activo y observa el error.
- Crea la Sub TransferirDato() y verifica que C1 combina los valores de A1 y B1.
Ejercicios de práctica
Ejercicio 1 — Tipos básicos
Declara una variable de cada tipo (Integer, Double, String, Boolean), asígnales un valor y muéstralos todos con Debug.Print.
Ver solución sugerida
Ejercicio 2 — Área de un rectángulo
Declara variables Double para base y altura. Asígnales valores 12 y 7.5. Calcula el área y muéstrala con MsgBox.
Ver solución sugerida
Ejercicio 3 — Nombre completo
Declara variables String para nombre y apellido. Asígnales tus datos. Concatena ambas en una tercera variable y muéstrala.
Ver solución sugerida
Ejercicio 4 — Leer precio de celda y calcular IVA
Escribe un precio en B2. Crea una Sub que lea ese valor, calcule el IVA (19%) y escriba el total con IVA en C2.
Ver solución sugerida
Ejercicio 5 — Variable Boolean como bandera
Declara una variable Boolean llamada esMayor. Asígnale True. Muestra con MsgBox: si es True, "Acceso permitido"; si es False, "Acceso denegado".
Ver solución sugerida
Ejercicio 6 — Constante de tasa ⭐⭐
Declara una constante con Const TASA_IVA As Double = 0.19. Úsala para calcular el precio con IVA de tres artículos de distintos precios y muestra cada resultado con Debug.Print.
Ver solución sugerida
Ejercicio 7 — Conversión de tipos ⭐⭐
Escribe el número 42 en A1. Léelo con una variable String usando CStr(). Luego escribe el texto "100" en B1, léelo con CInt() y multiplícalo por 3. Muestra ambos resultados.
Ver solución sugerida
Ejercicio 8 — Cuál es mayor ⭐⭐
Escribe dos números en A1 y B1. Declara dos variables, léelas y muestra con MsgBox cuál de las dos es mayor (o si son iguales).
Ver solución sugerida
Ejercicio 9 — Suma de tres celdas ⭐⭐
Escribe números en A1, B1 y C1. Crea una Sub que los lea en tres variables Double, los sume en una cuarta variable y escriba el resultado en D1.
Ver solución sugerida
Ejercicio 10 — Variable Long para número de fila ⭐⭐
Declara una variable Long y asígnale el valor 1048576 (la cantidad máxima de filas de Excel). Muéstrala con Debug.Print. Intenta lo mismo con Integer y observa el error.
Ejercicio 11 — Calculadora con variables ⭐⭐⭐
Escribe en A1 un precio unitario y en B1 una cantidad. Crea una Sub que calcule: subtotal, descuento del 10% si la cantidad es ≥ 5 (usa If simple por ahora), y total. Escribe los tres resultados en C1, D1 y E1 respectivamente.
Ver solución sugerida
Ejercicio 12 — Variable Date ⭐⭐⭐
Declara una variable Date, asígnale la fecha de hoy con Now() y calcula en otra variable cuántos días faltan para el 31 de diciembre del año actual. Muestra el resultado.
Ver solución sugerida
Ejercicio 13 — Detectar tipo de variable ⭐⭐⭐
Escribe valores distintos en A1 (número), A2 (texto), A3 (fecha). Crea una Sub que lea cada celda y use IsNumeric(), IsDate() para detectar el tipo y mostrarlo con Debug.Print.
Ver solución sugerida
Ejercicio 14 — Intercambiar dos variables ⭐⭐⭐
Escribe valores en A1 y B1. Crea una Sub que intercambie los valores de esas dos celdas usando una variable temporal temp. Después de ejecutarla, A1 debe tener el valor original de B1 y viceversa.
Ver solución sugerida
Ejercicio 15 — Reporte de variables ⭐⭐⭐
Crea una Sub que llene las celdas A1:B5 con un mini reporte: en la columna A los nombres de 5 variables ("Precio", "Cantidad", "Subtotal", "Descuento", "Total") y en la columna B sus valores calculados usando variables intermedias.