Una macro es una grabación de clics que Excel repite por ti. En este tutorial vas a grabar una sobre la hoja de un informe mensual de ventas, le vas a poner un atajo de teclado, vas a guardar el libro con la macro dentro y, después, vas a abrir el código que se generó para entenderlo y modificarlo a mano. Funciona en Excel para Microsoft 365, 2024, 2021, 2019 y 2016, en Mac (con la pestaña Programador activada) y en Excel para la web no se puede, porque ahí las macros VBA están deshabilitadas y se automatiza con Scripts de Office.
Qué es una macro y cuándo te ahorra trabajo
Una macro no es más que una lista de órdenes que Excel ejecuta una detrás de otra: abrir un menú, seleccionar un rango, pulsar un botón, escribir en una celda. Tú no escribes esa lista; la grabadora la escribe por ti mientras haces los clics a mano. Lo que grabas hoy lo reproduces mañana con un atajo o con un clic.
El caso típico es un informe que repites cada mes con los mismos retoques: la columna de nombres en negrita, el importe destacado en rojo, los totales recalculados, una fila de cabecera con fondo gris. Lo haces una vez con la grabadora encendida y, el mes que viene, pulsas Ctrl+Mayús+L y la columna vuelve a estar en negrita y rojo sin que tengas que acordarte del orden de los clics.
La macro no piensa: repite exactamente lo que grabaste, sobre las celdas que grabaste. Si el mes que viene los datos empiezan una fila más abajo, la macro fallará y tendrás que ajustarla. Por eso la grabadora sirve de dos formas: para automatizar tareas estables y, sobre todo, para aprender el nombre que Excel da a cada cosa (rangos, hojas, formatos) y luego escribir tus propias macros desde el editor.
La pestaña Programador y el botón Grabar macro
La pestaña Programador viene oculta por defecto. La activas desde las opciones generales de Excel en un par de clics.
En la columna de la derecha, Personalizar cinta de opciones, marcas la casilla Programador y pulsas Aceptar. La pestaña aparece a la derecha de Vista.
Se abre el cuadro Grabar macro, donde decides tres cosas antes de empezar a grabar:
Nombre de la macro no puede llevar espacios; se escribe junto, como una palabra. Tecla de método abreviado es la combinación Ctrl + una letra (o Ctrl+Mayús+letra para no pisar un atajo de Excel). Guardar macro en decide dónde vive: Este libro la deja en el archivo abierto, Libro de macros personal la guarda en un libro oculto que se abre siempre con Excel y que puedes usar desde cualquier archivo.
En cuanto pulsas Aceptar, todo lo que hagas — clics, escritura, cambios de formato — se graba. Cuando termines, vuelves a la misma ruta y pulsas Detener grabación.
Graba tu primera macro paso a paso
Antes de grabar, deja lista la hoja con la que vas a trabajar. El libro se llama Informe Ventas y la hoja activa es Ventas, con los vendedores en la columna A y los importes del mes en la columna B.
| A | B | |
|---|---|---|
| 1 | Vendedor | Importe |
| 2 | Ana Gómez | 1.250,00 |
| 3 | Luis Pérez | 980,00 |
| 4 | Marta Ruiz | 1.540,00 |
| 5 | Pedro Sánchez | 720,00 |
| 6 | Sofía Castro | 2.100,00 |
| 7 | Diego Torres | 1.075,50 |
| 8 | Carmen Vidal | 890,00 |
| 9 | Javier Núñez | 1.620,00 |
| 10 | Laura Romero | 1.330,00 |
- Selecciona el rango A2:A10.
- En la pestaña Programador, grupo Código, pulsa Grabar macro. Escribe el nombre
NegritaRojo, la tecla Ctrl+Mayús+L y guarda en Este libro. Pulsa Aceptar. - Con Inicio > Fuente > Negrita (Ctrl+N), aplicas la negrita al rango.
- En Inicio > Fuente > Color de fuente, elige el rojo. La selección queda en negrita y rojo.
- Vuelve a Programador > Código y pulsa Detener grabación.
Para lanzarla, abre Programador > Código > Macros (o Alt+F8), elige NegritaRojo y pulsa Ejecutar. También puedes pulsar directamente Ctrl+Mayús+L: como se la asignaste al grabarla, Excel la ejecuta sin abrir el cuadro.
Asignar un atajo a la macro
Cuando asignas un atajo al grabar, ya queda ligado a la macro. Si más adelante quieres cambiarla o crearla con otro atajo, vuelve a grabar una macro nueva y usa la tecla que prefieras: Ctrl+Mayús+R es una combinación libre que no pisa ningún atajo del programa.
Repite los pasos 1 a 5 del apartado anterior y, al pulsar Ctrl+Mayús+R sobre A2:A10, Excel aplica negrita y rojo sin pasar por el cuadro de macros.
Ctrl+letra tapa el atajo de Excel con esa misma letra mientras el libro esté abierto. Ctrl+Mayús+letra casi nunca pisa nada y es la opción más segura.Guardar el libro con la macro dentro
Cuando guardas un libro que tiene macros, Excel te ofrece dos formatos: el normal .xlsx y el de macros, .xlsm. Si guardas como .xlsx, las macros se pierden al cerrar el archivo.
En el cuadro Guardar como, abajo, junto a Tipo, abre la lista y elige *Libro de Excel habilitado para macros (.xlsm)*. Ponle al archivo el nombre Informe Ventas.xlsm* y pulsa Guardar.
.xlsx (libro normal), .xlsm (con macros), .xlsb (binario, más rápido con libros grandes), .xls (Excel 97-2003) y .csv (solo texto, sin fórmulas ni formatos).Mira el código que dejó la grabadora
Ahora vas a abrir el editor de VBA para ver qué escribió la grabadora cuando hiciste los clics. El editor es un programa aparte, dentro de Excel, que entiende el lenguaje Visual Basic for Applications.
En el cuadro Macros seleccionas NegritaRojo y pulsas Editar. Se abre el editor de VBA con un módulo que contiene la grabación de esta pantalla.
Sub NegritaRojo()
Selection.Font.Bold = True
Selection.Font.Color = RGB(255, 0, 0)
End Sub
Sub NegritaRojo() y End Sub son las líneas que delimitan la macro: empiezan y terminan el bloque. Dentro, Selection representa el rango que tienes seleccionado en la hoja. .Font.Bold = True pone la negrita y .Font.Color = RGB(255, 0, 0) pone el color rojo (255 es el máximo de cada canal RGB).
La grabadora convierte los clics en instrucciones de Visual Basic: cada vez que pulsaste el botón de negrita, escribió Selection.Font.Bold = True; cada vez que elegiste el color rojo, escribió Selection.Font.Color = RGB(255, 0, 0). Si quieres ver cómo cambia el código según lo que hagas, graba otra macro dando solo el color verde y mira la diferencia: el segundo argumento del RGB pasa de 0 a 255.
Escribe tú una macro desde el editor VBA
Grabar sirve para aprender, pero las macros de verdad se escriben a mano. Para abrir el editor sin pasar por la cinta, pulsa Alt+F11. Aparece una ventana nueva con el árbol del proyecto a la izquierda.
- En el árbol del proyecto, haz clic derecho sobre el libro Informe Ventas.xlsm y elige Insertar > Módulo. Aparece una hoja en blanco a la derecha.
- Escribe este código tal cual en el módulo de esta pantalla:
Sub Saludo()
Range("A1").Value = "Hola"
MsgBox "Listo"
End Sub
- Pulsa F5 o elige Ejecutar > Ejecutar Sub/UserForm desde el menú del editor. Vuelve a la hoja de Excel: la celda A1 muestra Hola y aparece un cuadro con el mensaje Listo.
Range("A1") apunta a la celda A1 de la hoja activa. .Value es su contenido. El signo = asigna el texto Hola a esa celda. MsgBox muestra un mensaje emergente; cuando pulses Aceptar, la macro termina.
Cambiar el código y volver a probarlo
El siguiente paso es modificar la macro para que sume 1 al valor de A1 cada vez que la ejecutes. Sustituye las dos líneas de dentro del Sub por estas otras de esta pantalla:
Sub Saludo()
Range("A1").Value = Range("A1").Value + 1
MsgBox "Listo"
End Sub
Pulsa F5. La celda A1 pasa de Hola a un error #¡VALOR!, porque Hola es una palabra, y sumar 1 a un texto no es un número. Antes de seguir, vuelve a poner A1 con un número: escribe 0 en A1 y vuelve a ejecutar. Ahora A1 muestra 1.
Pulsa F5 otra vez y A1 muestra 2. Cada ejecución suma 1. Lo que ha pasado es que Range("A1").Value lee el valor actual, le suma 1 y lo vuelve a escribir en la misma celda. Es el patrón básico para modificar datos desde una macro: leer, calcular, guardar.
Por qué una macro grabada se rompe
Una macro grabada es una fotografía de lo que hiciste: los nombres de las hojas, las celdas que tocaste, el orden de los clics. Si cualquiera de esas cosas cambia, la macro falla o hace algo distinto.
La macro no encuentra el archivo ni la hoja
Imagina que la grabadora grabó Sheets("Hoja1").Select porque la hoja se llamaba así cuando grabaste. Si el mes que viene renombras la hoja a Datos, la macro falla con Error de tiempo de ejecución 9: Subíndice fuera del intervalo.
El arreglo es sencillo: cambia el nombre en el código para que apunte a la hoja nueva, o usa el nombre entre comillas en lugar del número. Sustituye la línea por esta otra:
Worksheets("Datos").Activate
Worksheets("Datos") es una forma de referirse a una hoja por su nombre, sea el que sea. .Activate la trae al primer plano. La macro seguirá funcionando aunque renombres la hoja, mientras el nombre coincida.
Las macros vienen bloqueadas de internet
Si abres un archivo .xlsm descargado de un correo o de una web, Excel muestra una franja amarilla arriba: Las macros se han deshabilitado. Por seguridad, las macros de archivos de internet están bloqueadas hasta que las desbloquees tú.
Pulsa Desbloquear y, después, Habilitar contenido en la franja amarilla. La macro ya se puede ejecutar. Si el archivo es de confianza (uno tuyo, de tu empresa), basta con desbloquearlo una vez; si no lo es, piénsalo dos veces antes de habilitar las macros de un archivo desconocido.
La macro grabada da formato a una celda vacía
Si ejecutas la macro NegritaRojo con una sola celda seleccionada, funciona. Pero si la ejecutas sin tener nada seleccionado —por ejemplo, desde el cuadro Macros, sin clicar antes una celda—, Excel se queja con No hay nada seleccionado. La grabadora grabó los cambios sobre la selección del momento; si la selección está vacía, no hay nada que cambiar. La solución es seleccionar primero el rango y luego ejecutar la macro, o reescribir el código para que apunte a un rango fijo con Range("A2:A10") en lugar de Selection.
Lo que ya sabes hacer con macros y el siguiente paso
- Grabar una macro con la pestaña Programador y aplicarla a una selección.
- Asignarle un atajo de teclado al grabarla para no tener que abrir el cuadro cada vez.
- Guardar el libro como
.xlsmpara que las macros no se pierdan al cerrar. - Abrir el editor (Alt+F11), leer el módulo y modificar a mano lo que grabó.
El siguiente paso natural es lanzar una macro al abrir el libro. En el editor VBA, en el árbol del proyecto, haz doble clic en ThisWorkbook y escribe dentro del bloque que aparece este código:
Private Sub Workbook_Open()
MsgBox "Bienvenido al informe"
End Sub
Guarda el libro, ciérralo y vuelve a abrirlo: el mensaje aparece automáticamente, sin que pulses nada. Workbook_Open es un evento del libro: Excel lo ejecuta solo cuando el archivo se abre. A partir de aquí puedes encadenar eventos (Workbook_Open, Worksheet_Change) con macros escritas a mano y dejar la grabadora solo para aprender el nombre de las cosas.
Dudas al usar macros en Excel
- ¿En qué versiones de Excel puedo grabar macros? En Excel para Microsoft 365, 2024, 2021, 2019 y 2016 de Windows, y en las equivalentes de Mac con la pestaña Programador visible. Excel para la web no ejecuta macros VBA; allí se usa Scripts de Office.
- ¿Por qué la macro no se guarda al cerrar? Porque guardaste el libro como
.xlsxen lugar de.xlsm. Vuelve a Archivo > Guardar como y elige el tipo Libro de Excel habilitado para macros. - ¿Puedo cambiar el atajo después de grabar? Sí: abre la macro desde Programador > Código > Macros > Opciones y escribe la nueva combinación. Solo vale para macros; los atajos propios de Excel no se reasignan desde Opciones.
- ¿Las macros grabadas sirven para algo serio? Sirven para tareas estables y para aprender. Para trabajo en serio se reescriben a mano y se prueban con datos de prueba antes de usarlas con los datos buenos.
Dudas al usar macros en Excel
1. Ejemplos de macros en Excel para empezar a practicar
Un ejemplo típico es una macro que da formato a una tabla: pone negrita en los encabezados, aplica bordes finos y colorea de gris la fila de totales con un solo clic. Otro muy usado es el que copia el rango A1:A10 en B1 ajustando el ancho de columna automáticamente. Ambos se graban con la grabadora (Programador > Grabar macro) y luego puedes ver el código en el editor de Visual Basic pulsando Alt+F11.
2. Cómo crear una macro en Excel que rellene datos en una hoja
Activa la pestaña Programador (Archivo > Opciones > Personalizar cinta de opciones) y pulsa Grabar macro; escribe el nombre, por ejemplo RellenarVentas, y elige Este libro como ubicación. Con la grabadora en marcha, escribe los datos en la hoja como lo harías normalmente, detén la grabación y listo. Cada vez que ejecutes la macro con Alt+F8, Excel repetirá exactamente esos tecleos.
3. Cómo crear una macro en Excel paso a paso
El camino más rápido es: ve a Programador > Grabar macro, asígnale un nombre sin espacios y, si quieres, un atajo de teclado como Ctrl+Mayús+M. Realiza las acciones sobre la hoja (escribir, dar formato, mover celdas) y al terminar pulsa Detener grabación. La macro queda guardada en el libro y la ejecutas cuando quieras desde Programador > Macros o con Alt+F8.
4. Cómo crear una macro en Excel y asignarla a un botón
Primero graba la macro en la pestaña Programador y déjala guardada en Este libro. Luego inserta un botón desde Insertar > Formas, dibújalo en la hoja, haz clic derecho y elige Asignar macro; selecciona la macro de la lista y pulsa Aceptar. Desde ese momento, cada clic en la forma ejecuta la macro sin tener que abrir el cuadro de diálogo.
5. Cómo se hace una macro en Word y qué tiene en común con Excel
En Word el proceso es idéntico: activa Programador, pulsa Grabar macro, realiza las acciones y Detener grabación. Luego puedes asignar la macro a un botón de la barra de acceso rápido o a un control de contenido del documento. La diferencia clave es que Word usa su propio modelo de objetos (Document, Range, Selection) en lugar del de Excel (Workbook, Worksheet, Range).
6. Para qué sirven las macros en Excel y cuándo merece la pena usarlas
Una macro sirve para convertir en un solo clic cualquier secuencia repetitiva: dar formato, copiar datos entre hojas, generar informes o limpiar tablas. Merece la pena cuando haces la misma操作 más de tres veces por semana, porque el tiempo que ahorras compensa el de crearla. Para tareas únicas o muy variables, suele ser más rápido hacerlas a mano que programar la macro.
7. En qué tipo de archivo se guardan las macros de Excel y por qué
Las macros se guardan en libros con extensión .xlsm (Libro de Excel habilitado para macros), no en .xlsx normal, que los bloquea por seguridad. Al guardar por primera vez, Excel te avisa de que el formato no admite macros y te ofrece cambiar a .xlsm; acepta y elige la ubicación. Si el libro se guarda como .xlsx, las macros se eliminan sin avisar más que con un cuadro de confirmación.
Fuentes
- MicrosoftInicio rápido: Crear una macro – Microsoft Supportconsultado el 13/10/2026
- MicrosoftAtajos propios y reasignar atajos en Excel — documentación oficialconsultado el 13/10/2026
- MicrosoftFECHA — documentación oficialconsultado el 13/10/2026
- MicrosoftEl editor de VBA y la primera macro — documentación oficialconsultado el 13/10/2026
- MicrosoftGráficos — documentación oficialconsultado el 13/10/2026