Una macro en Excel es una secuencia de instrucciones grabadas o escritas que Excel ejecuta automáticamente para realizar tareas repetitivas.
En lugar de hacer clic en cincuenta celdas cada lunes, una macro lo hace en dos segundos. VBA (Visual Basic for Applications) es el lenguaje de programación que da vida a esas instrucciones.
La diferencia entre una macro y VBA
Una macro es el resultado: el conjunto de pasos automatizados. VBA es el idioma en que se escriben esos pasos.
Puedes crear una macro de dos formas:
- Grabándola: Excel registra tus acciones y las convierte en código VBA automáticamente.
- Escribiéndola: tú escribes el código VBA directamente en el Editor de Visual Basic.
Ambos métodos producen el mismo resultado: código VBA que Excel puede ejecutar.
¿Por qué aprender macros y VBA en México?
Excel es la herramienta de trabajo más usada en empresas mexicanas. Lo usan contadores del SAT, analistas de Mercado Libre, administradores de nómina en FEMSA y compradores de Liverpool.
El problema es que la mayoría usa Excel de forma manual. Copian, pegan, formatean y calculan a mano, hora tras hora.
Con macros y VBA puedes:
- Generar reportes de ventas en segundos.
- Calcular nómina con deducciones del IMSS sin errores.
- Validar RFC y CURP en bases de datos grandes.
- Enviar correos desde Excel con datos específicos.
- Crear formularios de captura para tu equipo.
Un analista que tarda cuatro horas en preparar el reporte semanal puede reducirlo a cinco minutos con una macro bien escrita.
¿Quién usa VBA en la práctica?
No se trata solo de programadores. VBA lo usan:
- Contadores que procesan archivos del SAT (CFDI, DIOT, declaraciones).
- Recursos Humanos que calculan nómina, prestaciones y cuotas del IMSS.
- Administradores de inventario que consolidan entradas y salidas por almacén.
- Analistas de datos que cruzan información de múltiples hojas o archivos.
No necesitas ser desarrollador de software. Necesitas conocer Excel bien y estar dispuesto a aprender lógica básica.
La estructura de un archivo con macros
Cuando guardas un archivo de Excel con macros, debes usar el formato .xlsm (Excel Macro-Enabled Workbook). El formato .xlsx normal no permite guardar código VBA.
Tipos de archivos relevantes:
| Extensión | Tipo | ¿Permite macros? |
|---|---|---|
| .xlsx | Libro estándar | No |
| .xlsm | Libro con macros | Sí |
| .xlsb | Libro binario | Sí |
| .xlam | Complemento | Sí |
Siempre guarda tu trabajo como .xlsm cuando incluyas código VBA.
¿Qué es el Editor de Visual Basic (VBE)?
El Editor de Visual Basic (también llamado VBE) es el entorno donde escribes y editas tu código VBA. Es una ventana separada de Excel.
Puedes abrirlo de tres formas:
- Presiona Alt + F11 desde cualquier hoja de Excel.
- Ve a la pestaña Desarrollador y haz clic en Visual Basic.
- Haz clic derecho en una pestaña de hoja y selecciona Ver código.
El VBE tiene varias secciones importantes:
- Explorador de proyectos (izquierda): muestra todos los libros y módulos abiertos.
- Ventana de código (centro): aquí escribes tu código.
- Ventana Inmediato (abajo): útil para probar instrucciones rápidas.
- Ventana de propiedades (izquierda inferior): muestra propiedades del objeto seleccionado.
Tu primer vistazo al código VBA
Todo procedimiento en VBA comienza con Sub y termina con End Sub. Así se ve el código más básico:
Sub MiPrimeraMacro()
MsgBox "¡Hola desde VBA!"
End Sub
Este código muestra un cuadro de mensaje con el texto indicado. Nada más. Pero ya es una macro funcional.
Ahora un ejemplo más práctico. Supón que cada lunes escribes el encabezado de un reporte en la celda A1:
Sub EncabezadoReporte()
Range("A1").Value = "Reporte de Ventas - Semana " & Week(Now())
Range("A1").Font.Bold = True
Range("A1").Font.Size = 14
End Sub
Esta macro escribe el encabezado, lo pone en negritas y ajusta el tamaño de fuente. Lo que antes hacías en treinta segundos, ahora lo ejecutas con un clic.
Conceptos clave que usarás en todo el curso
Objeto: todo en Excel es un objeto. Un libro, una hoja, una celda, un gráfico. En VBA manipulas objetos.
Propiedad: es una característica del objeto. Por ejemplo, Value es una propiedad de una celda. Bold es una propiedad de la fuente.
Método: es una acción que realiza el objeto. Por ejemplo, .Select selecciona una celda. .Copy copia su contenido.
Evento: es algo que ocurre en Excel y puede disparar una macro. Por ejemplo, abrir el libro, cambiar una celda o hacer clic en un botón.
Esta jerarquía se ve así:
Application → Workbook → Worksheet → Range → Cell
Cuando escribes Workbooks("Ventas.xlsm").Sheets("Enero").Range("B5").Value, estás navegando esa jerarquía de objetos hasta llegar al valor de la celda B5.
Errores comunes al empezar con VBA
Error 1: Guardar el archivo como .xlsx Si guardas con el formato estándar, Excel elimina todo tu código VBA sin advertencia clara. Siempre usa .xlsm.
Error 2: No habilitar las macros al abrir el archivo Excel bloquea las macros por seguridad. Cuando abras un archivo .xlsm, debes hacer clic en Habilitar contenido en la barra amarilla de advertencia. Sin ese paso, las macros no corren.
Error 3: Confundir Sub con Function
Un Sub ejecuta acciones pero no devuelve un valor. Una Function devuelve un resultado que puedes usar en una celda. Usar el incorrecto causa errores difíciles de detectar al principio.
¿Qué aprenderás en este curso?
Este curso cubre VBA desde los fundamentos hasta aplicaciones reales:
- Grabar y ejecutar macros básicas.
- Escribir código VBA en el Editor de Visual Basic.
- Usar variables, condicionales y bucles.
- Manipular celdas, rangos y hojas por código.
- Crear funciones personalizadas reutilizables.
- Diseñar formularios de captura de datos.
- Automatizar reportes y exportar información.
- Depurar errores y proteger tu código.
Al terminar, podrás construir herramientas reales de automatización en Excel para tu trabajo diario.
Puntos clave
- Una macro es una secuencia de instrucciones automatizadas. VBA es el lenguaje que las escribe.
- Los archivos con macros deben guardarse en formato .xlsm, no .xlsx.
- El Editor de Visual Basic (VBE) se abre con Alt + F11.
- En VBA todo es un objeto con propiedades y métodos.
- Siempre debes habilitar las macros al abrir un archivo .xlsm, de lo contrario no funcionan.