Imagina que todos los días, cuando llegas a la oficina, abres tu hoja de ventas y haces lo mismo: pones en negrita los encabezados, aplicas formato de moneda a la columna de importes, pintas la fila del total y guardas un PDF. Una macro es, sencillamente, una grabación de esos clics: la reproduces cuando quieras con un atajo, un botón o un clic en un menú, y Excel repite todo por ti. Detrás de cada macro hay código escrito en VBA (Visual Basic for Applications), un lenguaje que entiende tu Excel y que tú puedes leer, copiar y modificar a medida que te pique la curiosidad. En este tutorial vas a grabar tu primera macro, a leer lo que la grabadora escribió por ti, a crear un botón y un atajo propios, y a escribir una mini macro a mano. Lo que verás sirve para Microsoft 365, Excel 2024 y 2021; en Excel 2019 y 2016 también funciona, aunque la pestaña Programador hay que activarla a mano.
Qué es una macro y cuándo te ahorra trabajo
Una macro es un bloque de instrucciones que Excel ejecuta una tras otra, como si tú mismo repitieras los clics. Las macros viven dentro del libro y se escriben en VBA, el lenguaje que Microsoft integra en Excel, Word y Access. Cuando guardas una macro, el código que la grabadora genera hace exactamente lo que acabas de hacer con el ratón: seleccionar un rango, aplicar negrita, cambiar un color, escribir un valor en una celda. La gracia está en que ese código se puede leer, copiar y modificar, así que empezarás grabando y pronto estarás escribiendo las tuyas desde cero.
Piensa en tu hoja de ventas: todos los días aplicas el mismo formato, sumas los importes por vendedor con =SUMAR.SI.CONJUNTO (SUMIFS) y exportas un PDF para enviárselo al jefe. Esas tres tareas son las candidatas perfectas para una macro. En cuanto las conviertas en macros, las lanzarás con un atajo de teclado y habrás ahorrado cinco minutos al día, varios al mes. Una macro bien hecha no se equivoca: hace siempre lo mismo, sin cansarse, sin saltarse una celda.
Las macros no son magia: solo pueden hacer lo que harías tú con el ratón o el teclado. Si una operación no se puede hacer a mano en Excel, tampoco la hará una macro. Y, al contrario: lo que es tedioso a mano (formatear mil filas, copiar fórmulas en muchos libros) se convierte en un abrir y cerrar de ojos cuando lo metes en una macro.
El editor de VBA y la grabadora de macros
Antes de crear tu primera macro necesitas dos cosas: la pestaña Programador (viene oculta por defecto) y el editor de Visual Basic, la herramienta donde se ve y se modifica el código. La pestaña Programador es donde están los botones «Grabar macro», «Visual Basic» y la lista de macros; el editor es la ventana donde vive el código VBA. La grabadora, por su parte, es el botón que traduce tus clics a VBA sin que tengas que escribir nada: haces lo que harías normalmente y, al terminar, abres el editor y ves el programa que ha escrito por ti.
Activar la pestaña Programador
Por defecto Excel oculta la pestaña Programador. Actívala así:
- Abre Archivo > Opciones.
- En la ventana, elige Personalizar cinta de opciones.
- En la columna de la derecha, marca la casilla Programador.
- Pulsa Aceptar: la pestaña aparece a la derecha de Vista.
La grabadora: tu profesora particular de VBA
La grabadora es el botón Grabar macro del grupo Código de la pestaña Programador. Cuando pulsas ese botón, Excel abre el cuadro Grabar macro y todo lo que hagas a partir de ese momento —seleccionar celdas, escribir, cambiar formato, ordenar— queda traducido a código VBA. Al pulsar Detener grabación, el código se guarda en un módulo del libro listo para ejecutarse cuando quieras.
En el cuadro de diálogo eliges el nombre de la macro, un atajo de teclado propio (por ejemplo Ctrl+Mayús+V) y dónde se guarda: en el Libro activo, en un Libro de macros personal (para tenerla siempre disponible) o en Libro nuevo. Aunque la macro esté bien desde el primer segundo, la grabadora tiene un truco enorme: el código que escribe usa los nombres reales de cada cosa. Si aplicas negrita, aparece Selection.Font.Bold = True; si cambias un color de relleno, aparece Selection.Interior.Color = .... Esos nombres son las instrucciones que luego escribirás tú a mano cuando ya no quieras grabar.
El editor de Visual Basic y la ventana Inmediato
Pulsa Alt+F11 y se abre el editor de VBA, una ventana aparte con tres paneles. A la izquierda, el Explorador de proyectos muestra todos los libros abiertos como proyectos y, dentro de cada uno, las carpetas Microsoft Excel Objetos (las hojas y el propio libro) y Módulos (donde se guardan las macros). En el centro, la ventana de código muestra el contenido del módulo seleccionado: ahí verás la macro que acabas de grabar. Abajo del centro, la ventana Inmediato sirve para probar una línea suelta: escribes ?Range("A1").Value y al pulsar Entrar ves el contenido de A1 sin crear una macro entera.
Graba tu primera macro y ejecútala
Hora de practicar. Vamos a usar una hoja llamada Ventas con las ventas de la semana. Primero copiarás los datos a tu hoja; después grabarás una macro que dé formato a la tabla y otra que resalte el total; por último, asignarás la primera a un botón.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Fecha | Vendedor | Producto | Importe |
| 2 | 02/10/2026 | Ana | Cuaderno | 16,00 |
| 3 | 02/10/2026 | Pedro | Bolígrafo | 4,50 |
| 4 | 03/10/2026 | Ana | Carpeta | 7,20 |
| 5 | 03/10/2026 | Marta | Cuaderno | 12,80 |
| 6 | 04/10/2026 | Pedro | Carpeta | 3,60 |
Macro para dar formato a una tabla de ventas
Empezarás con la macro que aplica el formato básico a la tabla:
- Selecciona el rango
A1:D1y ponlo en negrita desde Inicio > Fuente > Negrita. - Selecciona
D2:D6y aplica formato Moneda desde Inicio > Número > Formato de número contable. - Selecciona
A2:D6y pon un borde desde Inicio > Fuente > Bordes > Todos los bordes. - Pulsa Programador > Código > Grabar macro.
- En el cuadro Grabar macro escribe
GrabarFormato, deja el atajo vacío y guarda en Este libro. Pulsa Aceptar. - Vuelve a aplicar exactamente los mismos pasos 1, 2 y 3. Al terminar, pulsa Programador > Código > Detener grabación.
- Para probarla, copia la tabla en
A8:D13, selecciona la nueva tabla y pulsa Alt+F8, eligeGrabarFormatoy Ejecutar. La tabla copiada debe quedar con el mismo formato.
Asignar la macro a un botón en la hoja
Ahora la macro vivirá en un botón visible dentro de la propia hoja:
- Ve a Insertar > Controles > Botón (control de formulario).
- El cursor se convierte en una cruz: dibuja un rectángulo en la celda F1.
- Aparece el cuadro Asignar macro: elige
GrabarFormatoy pulsa Aceptar. - Mientras estés en modo diseño, haz clic derecho en el botón y elige Modificar texto para escribir «Dar formato».
- Pulsa fuera del botón para salir del modo diseño.
Crear un atajo de teclado propio al grabar
Repite la grabación, pero esta vez aprovecha el campo Método abreviado:
- Pulsa Programador > Código > Grabar macro.
- Escribe
AtajoFormatoen Nombre y Ctrl+Mayús+V en Método abreviado. - Pulsa Aceptar, repite las acciones de formato y detén la grabación.
Lee y reusa el código que generó la grabadora
Ahora viene la parte divertida: abrir la cocina y ver qué ha escrito la grabadora. Pulsa Alt+F11, despliega Módulos dentro del proyecto VBAProject (tu libro) y haz doble clic en Módulo1. Verás algo como esto:
Sub GrabarFormato()
' Formato de la tabla de ventas grabado el 04/10/2026
With Selection.Font
.Name = "Calibri"
.Bold = True
End With
Selection.NumberFormat = "#,##0.00 €"
Selection.Borders.LineStyle = xlContinuous
End Sub
La estructura es siempre la misma: una Sub (subrutina) con el nombre de la macro, un bloque With ... End With que aplica varias propiedades al mismo objeto (en este caso, la selección) y, fuera del bloque, las propiedades que no caben en el With.
Entender el código grabado línea a línea
Vamos a limpiar el código y dejarlo listo para reutilizar. La macro original depende de la selección: si la reproduces sin haber seleccionado nada, no hace nada visible. Mejor trabajar con un rango concreto.
Sub FormatoVentas()
' Da formato a la tabla que va de A1 a D6 en la hoja activa
With Range("A1:D6")
.Font.Bold = True ' Negrita en el encabezado (luego la quitas en datos)
.Borders.LineStyle = xlContinuous ' Bordes finos alrededor
End With
' Negrita SOLO en la fila de encabezados
Range("A1:D1").Font.Bold = True
' Formato moneda en los importes
Range("D2:D6").NumberFormat = "#,##0.00 €"
End Sub
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Fecha | Vendedor | Producto | Importe |
| 2 | 02/10/2026 | Ana | Cuaderno | 16,00 € |
| 3 | 02/10/2026 | Pedro | Bolígrafo | 4,50 € |
| 4 | 03/10/2026 | Ana | Carpeta | 7,20 € |
| 5 | 03/10/2026 | Marta | Cuaderno | 12,80 € |
| 6 | 04/10/2026 | Pedro | Carpeta | 3,60 € |
ThisWorkbook se refiere al libro donde está el código; ActiveWorkbook es el libro que tienes abierto en ese momento, que puede ser otro distinto. Si la macro debe trabajar siempre sobre su propio libro, usa ThisWorkbook.Añadir una macro escrita a mano desde cero
Una macro escrita a mano es igual que la grabada, pero sin la grabadora. En el mismo Módulo1, al final, añade:
Sub SaludarVendedor()
' Escribe en E1 el nombre del vendedor de la fila activa
Dim vendedor As String
vendedor = ActiveCell.Offset(0, -1).Value ' Una columna a la izquierda
ActiveSheet.Range("E1").Value = "Hola, " & vendedor & "!"
MsgBox "Celda E1 actualizada con el saludo.", vbInformation, "Listo"
End Sub
Probarla es fácil: selecciona una celda de la columna Vendedor (por ejemplo B3, que contiene «Pedro») y ejecuta SaludarVendedor desde Alt+F8. La celda E1 mostrará «Hola, Pedro!» y verás un cuadro de mensaje.
Offset(0, -1) dará error porque no hay columna a la izquierda. La macro funciona solo si la celda activa está en la columna B o en una posterior.Guardar el libro como .xlsm para conservar las macros
Una macro solo sobrevive si guardas el libro en el formato correcto:
- Pulsa F12 (Guardar como).
- En Tipo, elige *Libro de Excel habilitado para macros (.xlsm)**.
- Escribe
Ventas.xlsmy pulsa Guardar.
.xlsx (el formato normal), Excel te avisará de que las macros se van a perder. La próxima vez que abras un .xlsm con macros, puede que veas una banda amarilla de advertencia: pulsa Habilitar contenido para que las macros funcionen.Errores típicos al grabar y al ejecutar macros
A todo el mundo le pasa algo la primera vez. Aquí tienes los avisos que verás con más frecuencia y cómo salir de ellos sin desesperar.
"No se puede ejecutar la macro. El libro no está habilitado"
Suele aparecer con libros descargados de internet o adjuntos a un correo. Windows marca esos archivos como no seguros y Excel bloquea las macros por defecto. La solución: en el Explorador de archivos, clic derecho sobre el .xlsm > Propiedades > pestaña General > marca la casilla Desbloquear > Aceptar.
La macro no hace nada o se queda a medias
Si la grabadora no marca la opción Usar referencias relativas (Ctrl+Mayús+R mientras grabas en algunas versiones), las direcciones que escribe son absolutas ($A$1:$D$1). Cuando reproduces la macro, intenta tocar exactamente esas celdas y, si no estás ahí, no pasa nada visible. La solución: borra la macro grabada y vuelve a grabar pulsando primero Programador > Código > Usar referencias relativas.
El error de compilación o de sintaxis en el editor
Cuando abres el código y al ejecutarlo sale "Error de compilación" en una línea marcada en amarillo, lo normal es un End With sin su With correspondiente, una cadena sin cerrar ("Hola) o una coma donde VBA espera un punto y coma. VBA abre el cuadro Depurar:
Sub ErrorTipico()
Dim x As Integer
x = Range("A1").Value ' Si A1 vale "Hola", no cabe en un Integer: salta "Tipo no coinciden"
End Sub
Pulsa Aceptar, arregla la línea marcada y vuelve a ejecutar. Si te pierdes, pulsa Restablecer (el botón cuadrado del editor) para detener la macro a medio camino.
Lo que VBA no puede hacer y cómo lo resuelves
VBA solo funciona dentro de Excel de escritorio, no en Excel para la web ni en las apps de móvil. Si necesitas automatizar algo en la nube, tienes dos caminos: Office Scripts (JavaScript ligero que sí funciona en Excel para la web y se guarda en OneDrive) y Power Automate, que conecta Excel con cientos de servicios (correo, SharePoint, formularios) sin escribir código. Para análisis más pesados —leer miles de filas, cruzar con bases de datos externas, generar gráficos con pandas—, entra en juego Python en Excel, disponible en Microsoft 365 con licencia que incluya esa función: escribes =PY() en una celda y ejecutas scripts de Python sin salir de la hoja. No hay límite de lo que VBA puede hacer dentro del escritorio; el límite está en dónde corre.
Lo que ya sabes hacer con macros en Excel
- Activar la pestaña Programador y abrir el editor de VBA con Alt+F11.
- Grabar una macro con un atajo de teclado propio (Ctrl+Mayús+V) y ejecutarla desde Alt+F8.
- Asignar macros a botones de control de formulario dentro de la hoja.
- Leer y modificar el código grabado:
Sub,With ... End With,Range,Selection,ActiveCell. - Guardar el libro como
.xlsmy desbloquear archivos descargados.
El siguiente paso es escribir tu propia función en lugar de una subrutina: cambia Sub por Function y tendrás un nuevo comando de Excel que aparece en Fórmulas > Biblioteca de funciones > Insertar función, bajo «Funciones definidas por el usuario», listo para usarlo como =MiComision(A2) en cualquier celda.
Dudas al crear tu primera macro en Excel
1. Cómo desbloquear las macros bloqueadas por Microsoft en Excel
Cuando ves «Microsoft ha bloqueado la ejecución de macros porque el origen de este archivo no es de confianza», Excel aplicó la Vista protegida. Para desbloquearlo, cierra el archivo, haz clic derecho sobre él en el Explorador de Windows, Propiedades, marca «Desbloquear» en la parte inferior y acepta; la próxima vez que lo abras las macros ya podrán ejecutarse.
2. Cómo activar las macros en Excel 365
En Excel 365, abre el archivo y haz clic en el aviso amarillo «Advertencia de seguridad» que aparece sobre la hoja. Pulsa «Habilitar contenido» y, si confías en el documento, elige «Habilitar todo el contenido» para que no vuelva a preguntarlo. Solo habilites macros de fuentes verificadas: las macros ejecutan código VBA con acceso a tu equipo.
3. Cómo desbloquear macros bloqueadas por la configuración de seguridad
Si Excel las bloquea sin avisar, revisa la configuración en Archivo > Opciones > Centro de confianza > Configuración del Centro de confianza > Configuración de macros. Allí puedes elegir «Deshabilitar todas las macros con notificación» (lo más recomendable) o habilitar todas, aunque esta última opción deja tu equipo expuesto a macros maliciosas.
4. Cómo habilitar macros en Word
El mecanismo es el mismo que en Excel: al abrir un documento .docm aparece la barra amarilla «Advertencia de seguridad». Pulsa «Habilitar contenido» y elige si lo haces únicamente para esta sesión o para todos los documentos de confianza. La configuración general también está en Archivo > Opciones > Centro de confianza > Configuración de macros.
Fuentes
- MicrosoftEnable or disable macros in Microsoft 365 filesconsultado el 13/10/2026
- MicrosoftExcel para Microsoft 365 — documentación oficialconsultado el 13/10/2026
- MicrosoftEl editor de VBA y la primera macro — documentación oficialconsultado el 13/10/2026
- MicrosoftAtajos que funcionan igual en cualquier idioma — documentación oficialconsultado el 13/10/2026
- MicrosoftCtrl+Mayús+Entrar · fórmulas de matriz antiguas — documentación oficialconsultado el 13/10/2026