macros

Crear una macro en Excel desde cero: guía para empezar

noviembre 4, 2026 Tuto Excel 14 min read
Crear una macro en Excel desde cero: guía para empezar

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.

ArchivoOpcionesPersonalizar cinta de opciones

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.

ProgramadorCódigoGrabar macro

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.

A1fx**Vendedor**
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
Ventas
  1. Selecciona el rango A2:A10.
  2. 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.
  3. Con Inicio > Fuente > Negrita (Ctrl+N), aplicas la negrita al rango.
  4. En Inicio > Fuente > Color de fuente, elige el rojo. La selección queda en negrita y rojo.
  5. Vuelve a Programador > Código y pulsa Detener grabación.
Comprueba: la columna A aparece en negrita y rojo. La grabación ya está lista: cada vez que la ejecutes, Excel repite esos dos cambios sobre la selección activa.

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.

Cuidado: una macro con 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.

ArchivoGuardar comoEste equipoLibro de Excel habilitado para macros (*.xlsm)

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.

Nota: los formatos de archivo válidos son .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.

ProgramadorCódigoMacros

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.

  1. 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.
  2. Escribe este código tal cual en el módulo de esta pantalla:

Sub Saludo()
    Range("A1").Value = "Hola"
    MsgBox "Listo"
End Sub
  1. 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.

Comprueba: la celda A1 contiene la palabra Hola y has visto el cuadro Listo. Si A1 ya tenía el título Vendedor, ahora lo has reemplazado.

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.

Nota: en Excel configurado con punto decimal, el separador de argumentos es la coma en lugar del punto y coma. El código VBA, en cambio, usa la coma siempre.

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ú.

ArchivoInformaciónPropiedadesDesbloquear

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 .xlsm para 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 .xlsx en 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

  1. MicrosoftInicio rápido: Crear una macro – Microsoft Supportconsultado el 13/10/2026
  2. MicrosoftAtajos propios y reasignar atajos en Excel — documentación oficialconsultado el 13/10/2026
  3. MicrosoftFECHA — documentación oficialconsultado el 13/10/2026
  4. MicrosoftEl editor de VBA y la primera macro — documentación oficialconsultado el 13/10/2026
  5. MicrosoftGráficos — documentación oficialconsultado el 13/10/2026