macros

Cómo hacer macros en Excel con VBA desde cero

octubre 8, 2026 Tuto Excel 14 min read
Cómo hacer macros en Excel con VBA desde cero

Si cada mes abres el mismo informe, pones la columna de clientes en negrita, rellenas el fondo del título, calculas el total y te peleas con el mismo formato una y otra vez, una macro te ahorra todo eso: lo grabas una vez y lo reproduces con un atajo de teclado o un clic. En este tutorial vas a grabar tu primera macro, le vas a poner un atajo, la vas a guardar correctamente para que no se pierda y vas a abrir el código que Excel escribe por ti, que es la mejor forma de empezar a entender VBA. Funciona en Microsoft 365, Excel 2024, 2021, 2019 y 2016 en Windows, y desde Excel 2021 en Mac. No hay macros VBA en Excel para la web ni en otros sistemas que no sean Mac y Windows de escritorio.

Qué es una macro y cuándo te ahorra tiempo

Una macro es una grabación de lo que haces en Excel: clics, selecciones, formatos, fórmulas. Excel lo traduce a instrucciones de VBA (Visual Basic for Applications) y lo guarda dentro del libro. La próxima vez, en lugar de repetir los pasos, ejecutas la macro y el programa los hace por ti.

Piensa en un informe mensual de ventas. Cada mes tienes una hoja nueva con la lista de clientes en la columna A, sus importes en la B y una fila «Total» abajo. Lo que siempre haces es: seleccionar la columna de clientes, ponerla en negrita; poner el título de la hoja con fondo azul; calcular el total con Autosuma; y dar un formato de moneda a los importes. Eso son cinco o seis clics repetidos doce veces al año, o cien o doce si lo hace todo el equipo.

Grabar la macro cuesta un minuto. Después, pulsar Ctrl+Mayús+N (o el atajo que le asignes) aplica los seis pasos en menos de un segundo. Si el formato cambia, grabas otra macro con los cambios. No necesitas saber programar para grabar macros, y precisamente por eso la grabadora es el mejor sitio para empezar.

Dónde está la herramienta y qué Excel necesitas

Las macros viven en la pestaña Programador, que viene oculta porque la mayoría de la gente no la usa. Tienes que mostrarla una vez y se queda para siempre. Si solo quieres lanzar una macro ya grabada, también puedes hacerlo desde Vista, sin necesidad de mostrar la pestaña Programador.

Las versiones de Excel de escritorio que tienen macros VBA son las últimas de Windows y las últimas de Mac. Excel para la web no ejecuta macros VBA (allí se automatiza con Scripts de Office). Si tu archivo tiene macros y lo subes a OneDrive, las macros no se ejecutarán en el navegador.

Mostrar la pestaña Programador

  1. Abre Excel y, si quieres, un libro en blanco.
  2. Ve a Archivo > Opciones. Se abre el cuadro Opciones de Excel.
  3. En la columna izquierda, pulsa Personalizar cinta de opciones.
  4. En la lista Pestañas principales (la columna de la derecha), busca la entrada Programador y marca su casilla.
  5. Pulsa Aceptar.

Ahora verás la pestaña Programador al final de la cinta, con sus grupos Controles, Código y Complementos.

ArchivoOpcionesPersonalizar cinta de opciones

En Mac la pestaña se llama Desarrollador y se activa en Excel > Preferencias > barra de herramientas y opciones > Personalizar la cinta de opciones, marcando Desarrollador dentro de Pestañas principales.

Nota: En Excel configurado con punto decimal (México, parte de Estados Unidos) el separador de argumentos en las fórmulas es la coma en lugar del punto y coma. El resto del artículo usa punto y coma, que es lo que verás en la mayoría de países hispanohablantes.

Grabar tu primera macro paso a paso

Vamos a grabar una macro muy concreta sobre una hoja pequeña: pondremos en negrita los nombres de los clientes de la columna A.

A1fx**Cliente**
A B
1 Cliente Importe
2 Talleres A 1.250,00
3 Comercial B 980,00
4 Servicios C 2.140,50
5 Distribuidora D 760,00
6 Grupo E 3.005,00
Informe
  1. Crea un libro nuevo y, en la primera hoja, escribe los encabezados Cliente en A1 e Importe en B1.
  2. Rellena A2:A6 con cinco nombres de clientes y B2:B6 con sus importes (en este ejemplo, de menor a mayor).
  3. Selecciona el rango A2:A6 (los nombres de los clientes, sin el encabezado).
  4. Ve a Programador > Código > Grabar macro. Se abre el cuadro Grabar macro.
  5. En Nombre de la macro escribe NegritaClientes (sin espacios; Excel no deja ponerlos).
  6. En Tecla de método abreviado escribe N (Excel le añadirá Ctrl+Mayús+N para no pisar otros atajos).
  7. En Guardar macro en deja «Este libro» para que la macro quede guardada en el archivo que estás usando.
  8. En Descripción escribe «Pone en negrita los nombres de los clientes en A2:A6» y pulsa Aceptar.

A partir de aquí, todo lo que hagas se está grabando.

  1. Con A2:A6 ya seleccionado, ve a Inicio > Fuente > Negrita (o pulsa Ctrl+N).
  2. Ve a Programador > Código > Detener grabación.
ProgramadorCódigoGrabar macro
ProgramadorCódigoDetener grabación
Comprueba: Los nombres de A2:A6 aparecen en negrita. Si no lo ves, pulsa Ctrl+N sobre la selección: la macro funciona cuando la grabas.

Probar la macro en otra hoja

Ahora vas a comprobar que la macro sirve para más de una hoja, que es justo para lo que se hacen.

  1. Crea una hoja nueva (pestaña +, debajo) y llámala Informe 2.
  2. Copia A2:A6 de la hoja Informe y pega los valores en A2:A6 de Informe 2.
  3. Pulsa Ctrl+Mayús+N (el atajo que le asignaste).
  4. Los nombres de A2:A6 deberían ponerse en negrita al instante.
InicioPortapapelesPegar
Comprueba: En Informe 2, la columna A aparece en negrita a partir de A2. Si no pasa nada, mira la sección «Por qué tu macro deja de funcionar» más abajo.

Ver el código que ha escrito Excel por ti

La grabadora no solo repite clics: por debajo ha escrito un pequeño programa en VBA. Vamos a verlo.

  1. Ve a Programador > Código > Macros (o pulsa Alt+F8).
  2. Selecciona NegritaClientes en la lista y pulsa Modificar. Se abre el editor de Visual Basic (Alt+F11 también lo abre).
  3. Verás un módulo llamado Módulo1 con un Sub parecido a este:

Sub NegritaClientes()
    Range("A2:A6").Font.Bold = True
End Sub

La grabadora ha convertido tus clics en dos líneas de VBA. La primera define la macro; la segunda le dice a Excel que ponga en negrita el rango A2:A6 de la hoja activa. Si seleccionas otra hoja antes de ejecutar la macro, esa es la que se modifica. Lee el código y no lo toques todavía: lo importante es que sepas que existe y dónde está.

Cuidado: En Excel configurado con separador de punto decimal, el código VBA usa comas (.Font.Bold = True no cambia), pero si una macro asigna fórmulas se verá con coma en lugar de punto y coma. Lo que ves en el editor es la sintaxis VBA, no la fórmula en español de la celda.

Guardar el libro con la macro dentro

Si ahora cierras el libro con la macro y vuelves a abrirlo, la macro seguirá ahí, siempre que lo hayas guardado como libro habilitado para macros. Si lo guardas como .xlsx, la macro se pierde para siempre.

B7fx8.135,50
A B
1 Cliente Importe
2 Talleres A 1.250,00
3 Comercial B 980,00
4 Servicios C 2.140,50
5 Distribuidora D 760,00
6 Grupo E 3.005,00
7 Total 8.135,50
Informe
  1. Ve a Archivo > Guardar como.
  2. Elige la carpeta y el nombre.
  3. En Tipo, abre la lista desplegable y elige Libro de Excel habilitado para macros (*.xlsm).
  4. Pulsa Guardar.
ArchivoGuardar como
Nota: Guardar como .xlsx deja el archivo más limpio, pero borra todas las macros. Si solo te interesa el resultado, guarda después una copia como .xlsx desde Guardar como.

Abrir un .xlsm y desbloquear las macros

Por seguridad, Excel bloquea las macros de cualquier libro descargado de internet, del correo o de una unidad de red. La macro no se ejecuta hasta que tú digas que confías en el archivo.

  1. Abre el archivo .xlsm desde su carpeta.
  2. Si aparece la barra amarilla de advertencia «ADVERTENCIA DE SEGURIDAD: las macros se han deshabilitado», pulsa Habilitar contenido.
  3. Si la barra no sale y el libro tiene macros bloqueadas sin barra, abre Archivo > Información y pulsa Habilitar contenido > Habilitar todo el contenido (esta opción aparece solo si el archivo es de confianza en tu organización).
ArchivoInformaciónHabilitar contenido
Cuidado: Habilitar contenido ejecuta todas las macros del libro sin preguntarte una por una. Hazlo solo con archivos en los que confías. Si no sabes de dónde sale el .xlsm, mejor ábrelo, mira su código en Alt+F11 y decide después.

Por qué tu macro deja de funcionar

Tres errores muy comunes la primera vez. Cada uno con su causa y su solución.

La grabadora usa referencias fijas en lugar de moverse

La macro graba A2:A6 porque ese era el rango seleccionado cuando grabaste. Si la abres en una hoja con datos en otra columna o en otro rango, la macro pone en negrita A2:A6 sin importar lo que tengas delante: si no hay datos en esas celdas, no pasa nada visible; si los hay, los pones en negrita sin querer.

El arreglo es usar Selection en lugar de Range("A2:A6"): la macro actúa sobre lo que esté seleccionado cuando la lanzas.

A2fxCliente 1
A B
1 Cliente Importe
2 Cliente 1 100,00
3 Cliente 2 200,00
4 Cliente 3 300,00
5 Cliente 4 400,00
6 Cliente 5 500,00
7 Cliente 6 600,00
Informe 2
  1. Selecciona A2:A7 en la hoja Informe 2.
  2. Pulsa Alt+F8, elige NegritaClientes y pulsa Modificar.
  3. Cambia la línea Range("A2:A6").Font.Bold = True por Selection.Font.Bold = True.
  4. Cierra el editor de VBA (Archivo > Cerrar y volver a Microsoft Excel).
  5. Selecciona otro rango en otra hoja y ejecuta la macro: actuará sobre la selección.

Sub NegritaClientes()
    Selection.Font.Bold = True
End Sub
Comprueba: Al seleccionar A2:A7 en Informe 2 y lanzar la macro, las seis filas quedan en negrita; al seleccionar otra cosa antes, esa selección se pone en negrita.

El archivo se guardó como .xlsx

Si al guardar elegiste el tipo «Libro de Excel (*.xlsx)» por inercia, Excel te avisa de que las macros no se pueden guardar en ese formato y, según la versión, o bien las borra sin más o bien te pregunta y, si sigues, las pierde. Al abrir el archivo otra vez, Macros está vacío.

Solución: rehaz el guardado eligiendo Libro de Excel habilitado para macros (*.xlsm). Si la macro era muy larga y no la tienes en ningún sitio, no hay forma de recuperarla: vuelve a grabarla y esta vez guarda como .xlsm.

Excel bloquea las macros al abrirlo

Aunque pulses Ctrl+Mayús+N, la macro no se ejecuta y no aparece ningún error claro: simplemente no pasa nada. La causa es la barra de seguridad: Excel ha deshabilitado las macros por defecto.

Solución: pulsa Habilitar contenido en la barra amarilla de advertencia o ve a Archivo > Información > Habilitar contenido. Después de eso, el atajo funcionará. Si trabajas con muchos .xlsm de la misma carpeta, puedes marcar la carpeta como ubicación de confianza en Archivo > Opciones > Centro de confianza > Ubicaciones de confianza; los archivos que vivan ahí no mostrarán la barra.

Lo que la grabadora sí hace y lo que no

La grabadora de macros repite exactamente lo que hiciste, en el mismo orden y con los mismos clics. Eso es lo que la hace potente y lo que la hace frágil.

Sí hace:

  • Repetir la secuencia de clics tal como la grabaste, con sus mismos formatos y referencias.
  • Guardar fórmulas, formatos de celda, autofiltros, ordenaciones, gráficos, tablas dinámicas: cualquier cosa que se pueda hacer con el ratón y el teclado.
  • Asignar un atajo propio (Ctrl+Mayús+letra) a cada macro grabada.
  • Funcionar desde la ficha Vista > Macros > Ver macros (Alt+F8) aunque no tengas la pestaña Programador.

No hace:

  • Tomar decisiones: no puede decir «si el importe es mayor de 1.000, resáltalo en rojo», porque no evalúa condiciones.
  • Adaptarse a tablas que cambian de tamaño: si grabaste sobre cinco filas y ahora tienes veinte, solo formatea las cinco primeras.
  • Predecir cambios en la interfaz: si Microsoft cambia el orden de un menú en una actualización, la grabación falla porque la grabadora apunta a la posición, no al nombre.
  • Conectarse a internet, enviar correos, escribir en otros libros abiertos ni interactuar con otras aplicaciones: para eso hace falta escribir VBA a mano.

Cuando necesites cualquiera de las cuatro cosas de la lista de «no hace», toca abrir el editor (Alt+F11) y empezar a escribir código a mano. La grabadora es el mejor sitio para aprender los nombres de los objetos (Range, Selection, Font) que luego vas a usar al escribir.

Lo que ya sabes hacer con macros y el siguiente paso

  • Tienes la pestaña Programador activada en la cinta de opciones.
  • Has grabado una macro con un nombre claro, una descripción útil y un atajo propio.
  • Has guardado el libro como .xlsm para que la macro quede dentro del archivo.
  • Has abierto el editor de VBA con Alt+F11 y has visto el código que generó la grabadora.
  • Sabes desbloquear las macros con la barra de seguridad o desde Archivo > Información.

El siguiente paso es leer el código que ha generado la grabadora en cada macro que grabes, sin miedo de tocar nada todavía. Cada clic tiene su línea de VBA correspondiente. Empieza por las que ya tienes grabadas: sustituye Range("A2:A6") por un Replacement (no por Selection, que es otra historia), graba otra vez y compara los dos códigos para ver qué cambió. Cuando te sientas cómoda, prueba a cambiar un valor de la derecha (por ejemplo, .Font.Bold = False para quitar la negrita) y verás cómo una sola línea cambia el comportamiento de la macro entera.

Nota sobre versiones: los datos de este artículo están comprobados en octubre de 2026.

Dudas al grabar y usar macros en Excel

1. Ejemplos de macros en Excel que puedo copiar y adaptar

Un ejemplo clásico es una macro que recorre la columna A y pinta de rojo las celdas vacías: abres el editor con Alt+F11, insertas un módulo y escribes un bucle For Each que evalúe IsEmpty. Otro muy usado es el que da formato de tabla a un rango seleccionado con un solo clic, aplicando Borders, Font y Interior desde VBA.

2. Cómo asignar una macro a un botón en la hoja

Ve a la pestaña Programador > Controles > Insertar y elige el botón (icono de rectángulo). Dibújalo en la hoja, te aparecerá el cuadro Asignar macro, seleccionas la tuya y aceptas. Desde ese momento, cada clic ejecuta el código asociado sin abrir el editor.

3. Cómo crear una macro para introducir datos automáticamente

Graba una macro con Desarrollador > Grabar macro mientras rellenas una fila a mano: Excel memoriza cada celda y cada texto. Después revisa el código generado en el editor (Alt+F11) y reemplaza los valores fijos por variables o por un InputBox, así podrás pedir los datos al usuario cada vez que se ejecute.

4. Cómo empezar a hacer una macro desde cero paso a paso

Activa la pestaña Programador en Archivo > Opciones > Personalizar cinta de opciones. Pulsa Desarrollador > Grabar macro, realiza las acciones que quieras automatizar y detén la grabación. Luego abre el editor con Alt+F11 para ver el código generado y entender qué ha hecho Excel por ti.

5. Qué es una macro y para qué sirve dentro de Excel

Una macro es un conjunto de instrucciones que Excel ejecuta de forma automática al pedírselo, normalmente escritas en VBA. Sirve para ahorrar tiempo en tareas repetitivas como dar formato, mover datos, generar informes o limpiar hojas, y se lanza con un atajo, un botón o un evento de la hoja.

6. Qué es la macro del personaje de Free Fire y tiene algo que ver con Excel

En Free Fire, la «macro» es un script externo que automatiza disparos o movimientos y está prohibido por Garena: su uso provoca baneo de cuenta. No tiene relación con las macros de Excel, que son instrucciones de VBA para automatizar tareas dentro de la propia hoja de cálculo.

7. Para qué sirven realmente las macros en el día a día con Excel

Sirven para convertir en un solo clic tareas que harías a mano muchas veces: aplicar el mismo formato a cientos de filas, consolidar datos de varias hojas, generar PDFs de informes o enviar correos con un adjunto. En un libro con 10.000 filas, lo que manualmente te llevaría una hora puede resolverse en segundos con una macro bien escrita.

Fuentes

  1. MicrosoftEl editor de VBA y la primera macro — documentación oficialconsultado el 05/10/2026
  2. MicrosoftFórmulas y funciones — documentación oficialconsultado el 05/10/2026
  3. MicrosoftLímites del libro — documentación oficialconsultado el 05/10/2026
  4. MicrosoftAtajos que funcionan igual en cualquier idioma — documentación oficialconsultado el 05/10/2026
  5. MicrosoftFormatos de archivo de Excel — documentación oficialconsultado el 05/10/2026