macros

Qué es una macro en Excel: cómo crear tu primera macro paso a paso

octubre 13, 2026 Tuto Excel 12 min read
Qué es una macro en Excel: cómo crear tu primera macro paso a paso

Las macros son pequeñas instrucciones que Excel ejecuta por ti al pulsar un botón. Sirven para automatizar tareas repetitivas —quitar duplicados, dar formato a totales, exportar a PDF— que harías a mano cada semana. Con una macro, esos pasos se graban o se escriben una vez y se vuelven a usar con un clic, sin repetir el trabajo.

En este tutorial vas a crear tu primera macro paso a paso sobre una hoja de Ventas2026: abrirás el editor de VBA, escribirás un Sub, usarás la grabadora, le pondrás un botón en la hoja y aprenderás a guardar el archivo para que no pierda el código. Funciona en Excel 2010 y posterior en escritorio, y el archivo se guarda como .xlsm.

Qué es una macro y para qué te sirve en el día a día

Una macro es un programa pequeño que vive dentro del libro de Excel. Cada macro hace, en orden, las instrucciones que le has escrito: borrar duplicados, poner en negrita la fila del total, exportar a PDF, enviar un correo con la hoja como adjunto. Lo que a ti te cuesta varios clics y un par de minutos, la macro lo hace en un abrir y cerrar de ojos y sin quejarse.

Imagina la hoja Ventas2026 de una tienda pequeña. Cada lunes, antes de la reunión, alguien abre el libro, quita las filas repetidas, marca en amarillo los totales por categoría, deja en negrita la fila del total general y exporta la hoja a PDF. Cuatro tareas, unos cinco minutos, y siempre las mismas. Una macro llamada PrepararReunion que ejecute esos cuatro pasos en orden convierte ese lunes en un clic.

Las macros se escriben en VBA (Visual Basic para Aplicaciones), un lenguaje de programación pensado para que gente sin experiencia pueda automatizar Office. No hace falta saber programar para empezar: la grabadora de macros convierte tus clics en código VBA, y ese código se puede leer, copiar y modificar.

Lo que necesitas para escribir macros en tu equipo

Para escribir y ejecutar macros necesitas Excel de escritorio en Windows o Mac (Excel 2010 o posterior). Excel para la web abre archivos con macros, pero no las ejecuta: si abres un .xlsm ahí, los botones no harán nada. En el móvil tampoco se ejecutan.

El archivo que contiene macros se guarda con una extensión propia: .xlsm (Libro de Excel habilitado para macros). Si lo guardas como .xlsx, Excel te avisa de que el código se va a perder y lo borra al cerrar. La extensión .xls (Excel 97-2003) también admite macros, pero tiene el límite antiguo de 65.536 filas; mejor usar .xlsm.

La pestaña Programador, donde está la grabadora y los botones de macros, viene oculta por defecto. Se activa en Archivo > Opciones > Personalizar cinta de opciones: marca la casilla Programador en la columna derecha y pulsa Aceptar. A partir de ese momento la pestaña aparece a la derecha de Vista.

Por último, ten en cuenta la seguridad. Excel bloquea por defecto las macros de los archivos descargados de internet o recibidos por correo: al abrir el libro aparece una barra amarilla con el aviso SEGURIDAD: las macros se han deshabilitado. Hay que pulsar Habilitar contenido para que se ejecuten. Es una protección, no un error.

Cómo abrir el editor de VBA y conocer sus partes

El editor de VBA es la herramienta donde se escriben y se prueban las macros. Se abre con Alt+F11 desde cualquier hoja de Excel. La ventana que aparece es independiente del libro, con su propio menú y sus propios paneles.

La parte más importante es el panel de la izquierda, el Explorador de proyectos. Ahí ves cada libro abierto como un nodo (VBAProject (nombrearchivo.xlsm)), y dentro, una carpeta llamada Microsoft Excel Objetos con las hojas (Hoja1, Hoja2) y un elemento ThisWorkbook que representa el libro entero. Más abajo aparece una carpeta Módulos, que es donde escribirás tus macros. Las macros que están dentro de una hoja o de ThisWorkbook existen, pero no aparecen en las listas de macros normales: se llaman macros de evento.

En el centro está la ventana de código, un editor de texto donde se escriben las instrucciones. Arriba tiene la barra estándar (Guardar, Copiar, Pegar) y, lo más útil, los botones Insertar y Ejecutar. Insertar > Módulo crea un módulo en blanco donde empezar a escribir; Ejecutar (o la tecla F5) lanza la macro que tengas abierta.

Insertar un módulo y escribir un Sub

Un módulo es una hoja en blanco dentro del proyecto de VBA donde viven tus macros. Para crearlo, en el editor de VBA pulsa Insertar > Módulo. Aparece una carpeta Módulos en el Explorador de proyectos y a su derecha un módulo llamado Módulo1 con el cursor parpadeando.

Una macro se escribe siempre entre dos líneas: Sub Nombre() al principio y End Sub al final. La palabra Sub viene de subroutine (subrutina) y el nombre es el que tú quieras, sin espacios y sin tildes. Dentro van las instrucciones, una por línea.

El primer Sub: escribir Hola en A1

El programa más corto que hace algo útil en Excel tiene tres líneas: una para poner un valor en una celda, otra para avisar y la última para cerrar. Se escribe dentro de Módulo1, entre Sub y End Sub.

Sub Saludo()
    Range("A1").Value = "Hola"
    MsgBox "Listo"
End Sub

Para lanzarlo, el cursor tiene que estar dentro del Sub. Pulsa F5 o el botón Ejecutar. La celda A1 de la hoja activa muestra la palabra Hola y aparece un cuadro con el texto Listo y un botón Aceptar.

Listo

La grabadora de macros: tu profesora de VBA

La grabadora de macros es la herramienta que más rápido enseña VBA. Tú haces los pasos a mano en la hoja —seleccionar, dar formato, copiar, pegar— y Excel los traduce a código VBA en tiempo real. El código no siempre es bonito, pero es código que funciona, y leerlo es la mejor forma de aprender cómo se llama cada cosa en VBA.

VistaMacrosGrabar macro

Pasos para probarla:

  1. Abre un libro nuevo en blanco.
  2. Ve a Vista > Macros > Grabar macro.
  3. En el cuadro Nombre de la macro escribe ResaltarMax (sin espacios).
  4. Pulsa Aceptar. La grabadora empieza a registrar todo lo que hagas.
  5. Selecciona la celda A1, ve a Inicio > Estilos > Color de relleno y elige un amarillo claro.
  6. Vuelve a Vista > Macros > Detener grabación.
  7. Pulsa Alt+F11 y abre Módulo1. Verás un Sub ResaltarMax() con código como With Selection.Interior y Color = 65535. Ese código lo ha escrito Excel mientras tú hacías los clics.

Mi primera macro útil con el botón que la lanza

Volvemos a la hoja de Ventas2026. La idea es que la macro ponga en negrita la fila del total general y muestre un cuadro con la suma de los importes, así dejas de hacerlo a mano cada lunes.

A1fx**Producto**
A B
1 Producto Importe
2 Cuadernos 320,00
3 Bolígrafos 145,50
4 Mochilas 890,00
5 Lápices 67,20
6 Calculadoras 1.250,00
7 Pegamento 28,75
8 Tijeras 54,00
9
10 Total 2.755,45
Ventas
Nota: en este tutorial los argumentos de las funciones se separan con punto y coma porque el separador decimal es la coma. Si tu Excel está configurado con punto decimal (México, Estados Unidos), el separador será la coma.

Escribir el código y ejecutarlo desde el editor

En el editor de VBA (Alt+F11), abre Módulo1 y escribe debajo de la macro anterior este Sub. La macro pone en negrita la fila 10 (la del total) y muestra un MsgBox con la suma de B2 a B8.

Sub ResaltarTotal()
    Range("A10:B10").Font.Bold = True
    MsgBox "Total: " & WorksheetFunction.Sum(Range("B2:B8"))
End Sub

Con el cursor dentro del Sub, pulsa F5. La fila 10 aparece en negrita y se abre un cuadro con el texto Total: 2755,45.

Total: 2755,45

WorksheetFunction.Sum es la forma VBA de llamar a la función SUMA (en inglés SUM) de Excel, así que la suma se calcula con el motor de la hoja, no con VBA.

Comprueba: la fila 10 se ve en negrita y el MsgBox muestra el total bien calculado.

Crear un botón en la hoja que ejecute la macro

Una macro que solo se lanza desde el editor sirve para probar, pero no para el día a día. El paso natural es poner un botón en la propia hoja para que cualquier persona la ejecute con un clic.

B11fx[ Preparar total ]
A B
1 Producto Importe
2 Cuadernos 320,00
3 Bolígrafos 145,50
4 Mochilas 890,00
5 Lápices 67,20
6 Calculadoras 1.250,00
7 Pegamento 28,75
8 Tijeras 54,00
9
10 Total 2.755,45
11 [ Preparar total ]
Ventas

Pasos para poner el botón:

  1. Ve a Insertar > Formas > Rectángulo redondeado.
  2. Dibuja el rectángulo sobre la celda B11.
  3. Clic derecho sobre la forma > Asignar macro.
  4. Elige ResaltarTotal y pulsa Aceptar.
  5. Escribe el texto del botón (por ejemplo, Preparar total) y dale formato desde Inicio > Fuente.

A partir de ahora, cada clic en el botón lanza la macro y prepara la fila del total.

Comprueba: al hacer clic en el rectángulo, la fila 10 se pone en negrita y aparece el MsgBox con la suma.

Referencias relativas y absolutas dentro de una macro

Las macros distinguen entre referencias absolutas y relativas igual que las fórmulas de la hoja. Range("A1") siempre apunta a la celda A1, sin importar dónde esté el cursor: es absoluta. En cambio, ActiveCell.Offset(1, 0) baja una fila desde la celda activa, así que su destino cambia según dónde estés: es relativa.

Para hacer una referencia absoluta con un número que cambia, se construye el texto con el operador &. Por ejemplo, Range("A" & i) apunta a A1 cuando i vale 1, a A2 cuando i vale 2, y así. Eso es la base de cualquier macro que recorra filas.

=Range("A" & i)

En las fórmulas de la hoja pasa igual: con F4 se cambia entre A1, $A$1, A$1 y $A1. La tecla F4 en Windows corresponde a Cmd+T en Mac.

Por qué tu macro a veces no hace nada al abrir el archivo

Hay tres motivos reales por los que una macro deja de funcionar de un día para otro. Todos se arreglan en pocos segundos una vez que se reconocen.

La barra amarilla que bloquea las macros

Cuando abres un .xlsm descargado de internet o recibido por correo, Excel muestra una barra amarilla con el texto SEGURIDAD: las macros se han deshabilitado y un botón Habilitar contenido. Hasta que no pulses ese botón, las macros no se ejecutan. Es la marca MOTW (Mark of the Web) que Windows pone a los archivos de internet.

La macro no aparece en la lista

Si al ir a Vista > Macros > Ver macros tu macro no sale en la lista, casi siempre es porque está escrita detrás de la hoja (Hoja1, Hoja2) o de ThisWorkbook, y no en un módulo estándar. El cuadro Ver macros solo muestra las macros que viven en módulos. La solución: abre Alt+F11, mueve el código a Módulo1 con cortar y pegar, y vuelve a probar.

El archivo es .xlsx y las macros se han perdido

El caso más caro: abres un .xlsx, escribes una macro, guardas y al cerrar Excel te preguntó si querías guardar los cambios. Le dijiste que sí, pero el formato era .xlsx, y al guardar así se borra el código VBA. No hay vuelta atrás: la macro hay que volver a escribirla. Para que no pase, desde entonces usa siempre Archivo > Guardar como y elige Libro de Excel habilitado para macros (.xlsm).

Cuándo VBA no es la herramienta adecuada

VBA vive en el escritorio: las macros se ejecutan en el Excel instalado en tu Windows o Mac, no en un servidor. Si abres el archivo en Excel para la web o en el móvil, los botones no harán nada. Para esos entornos existe Office Scripts, basado en JavaScript y TypeScript, que sí funciona en la nube.

Para tareas con datos en la nube que se refrescan solos, VBA no encaja: ahí mandan Power Query (para importar, limpiar y combinar datos desde archivos, bases de datos y servicios web) y Power Automate (para disparar flujos cuando pasa algo, como un correo nuevo o un archivo subido). VBA brilla cuando el trabajo es local, repetitivo y de oficina: dar formato, mover datos entre hojas, generar informes, enviar correos desde Outlook.

Una regla práctica: si el trabajo cabe en la pantalla y se repite cada semana, VBA es la herramienta. Si los datos cambian a cada hora o viven en una base de datos, mira antes Power Query.

Lo que ya sabes hacer con macros en Excel

  • Abrir el editor de VBA con Alt+F11 y reconocer sus partes: Explorador de proyectos, ventana de código, Insertar > Módulo y Ejecutar.
  • Escribir un Sub con sus instrucciones, como Range("A1").Value = "Hola", y lanzarlo con F5.
  • Grabar una macro con Vista > Macros > Grabar macro y leer después el código que Excel ha escrito.
  • Asignar una macro a una forma de la hoja con clic derecho > Asignar macro, para lanzarla con un clic.
  • Guardar el archivo como .xlsm desde Archivo > Guardar como para no perder el código VBA.

El siguiente paso es dejar de escribir direcciones de celda a mano: aprender a usar variables y bucles For…Next para que la macro recorra sola las filas de la hoja, ponga en negrita cada total de categoría o borre los duplicados sin que tú le digas cuál es cuál.

Datos comprobados en octubre de 2026.

Fuentes

  1. MicrosoftEl editor de VBA y la primera macro — documentación oficialconsultado el 05/10/2026
  2. MicrosoftReferencias relativas, absolutas y mixtas — documentación oficialconsultado el 05/10/2026
  3. MicrosoftUna celda vacía en una fórmula — documentación oficialconsultado el 05/10/2026
  4. Microsoft0,00 · dos decimales fijos — documentación oficialconsultado el 05/10/2026
  5. MicrosoftFormatos de fecha y hora en español — documentación oficialconsultado el 05/10/2026