office

Macros en Excel: qué son y cómo crear la primera con VBA

noviembre 6, 2026 Tuto Excel 14 min read
Macros en Excel: qué son y cómo crear la primera con VBA

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í:

  1. Abre Archivo > Opciones.
  2. En la ventana, elige Personalizar cinta de opciones.
  3. En la columna de la derecha, marca la casilla Programador.
  4. Pulsa Aceptar: la pestaña aparece a la derecha de Vista.
ArchivoOpcionesPersonalizar cinta de opciones
Nota: En Mac la pestaña se activa desde Excel > Preferencias > Barra de herramientas y cinta marcando Programador en la lista de la derecha.

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.

Consejo: Si pulsas Alt+F11 y no pasa nada, suele ser que el Excel no permite ejecutar macros. Revisa la sección de errores típicos más abajo o, en Excel para Mac, usa el menú Herramientas > Macro > Editor de Visual Basic.

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.

D1fx=SUMA(D2:D6)
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
Ventas

Macro para dar formato a una tabla de ventas

Empezarás con la macro que aplica el formato básico a la tabla:

  1. Selecciona el rango A1:D1 y ponlo en negrita desde Inicio > Fuente > Negrita.
  2. Selecciona D2:D6 y aplica formato Moneda desde Inicio > Número > Formato de número contable.
  3. Selecciona A2:D6 y pon un borde desde Inicio > Fuente > Bordes > Todos los bordes.
  4. Pulsa Programador > Código > Grabar macro.
ProgramadorCódigoGrabar macro
  1. En el cuadro Grabar macro escribe GrabarFormato, deja el atajo vacío y guarda en Este libro. Pulsa Aceptar.
  2. Vuelve a aplicar exactamente los mismos pasos 1, 2 y 3. Al terminar, pulsa Programador > Código > Detener grabación.
  3. Para probarla, copia la tabla en A8:D13, selecciona la nueva tabla y pulsa Alt+F8, elige GrabarFormato y Ejecutar. La tabla copiada debe quedar con el mismo formato.
Comprueba: Al ejecutar la macro sobre la segunda tabla aparece exactamente el mismo aspecto (negrita en encabezados, moneda, bordes). Si solo cambia una parte, probablemente seleccionaste un rango distinto al grabar: repite la grabación teniendo cuidado de pulsar exactamente los mismos rangos.

Asignar la macro a un botón en la hoja

Ahora la macro vivirá en un botón visible dentro de la propia hoja:

  1. Ve a Insertar > Controles > Botón (control de formulario).
  2. El cursor se convierte en una cruz: dibuja un rectángulo en la celda F1.
  3. Aparece el cuadro Asignar macro: elige GrabarFormato y pulsa Aceptar.
  4. Mientras estés en modo diseño, haz clic derecho en el botón y elige Modificar texto para escribir «Dar formato».
  5. Pulsa fuera del botón para salir del modo diseño.
InsertarControlesBotón (control de formulario)
Consejo: Para cambiar el tamaño o la posición del botón después, pulsa clic derecho sobre él y elige Modificar o arrastra los cuadros blancos del contorno.

Crear un atajo de teclado propio al grabar

Repite la grabación, pero esta vez aprovecha el campo Método abreviado:

  1. Pulsa Programador > Código > Grabar macro.
  2. Escribe AtajoFormato en Nombre y Ctrl+Mayús+V en Método abreviado.
  3. Pulsa Aceptar, repite las acciones de formato y detén la grabación.
Nota: Tu atajo Ctrl+Mayús+V sustituye al Pegado especial de Excel solo mientras el libro esté abierto. Cuando cierras el libro, el atajo deja de actuar.

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
Nota: Si tu Excel usa punto y coma como separador, dentro de VBA las fórmulas y rangos van con comas. Lo que ves arriba es VBA, no la hoja, así que la coma es correcta aquí aunque en la hoja uses punto y coma.

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
D1fx=SUMA(D2:D6)
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 €
Ventas
Consejo: 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.

Cuidado: Si ejecutas la macro desde la columna A, 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:

  1. Pulsa F12 (Guardar como).
  2. En Tipo, elige *Libro de Excel habilitado para macros (.xlsm)**.
  3. Escribe Ventas.xlsm y pulsa Guardar.
ArchivoGuardar comoLibro de Excel habilitado para macros
Cuidado: Si guardas como .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 .xlsm y 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

  1. MicrosoftEnable or disable macros in Microsoft 365 filesconsultado el 13/10/2026
  2. MicrosoftExcel para Microsoft 365 — documentación oficialconsultado el 13/10/2026
  3. MicrosoftEl editor de VBA y la primera macro — documentación oficialconsultado el 13/10/2026
  4. MicrosoftAtajos que funcionan igual en cualquier idioma — documentación oficialconsultado el 13/10/2026
  5. MicrosoftCtrl+Mayús+Entrar · fórmulas de matriz antiguas — documentación oficialconsultado el 13/10/2026