Macros en Excel: Guía Completa para Automatizar Tareas (2026)

  • Categoría de la entrada:Excel
  • Comentarios de la entrada:Sin comentarios
Captura de pantalla mostrando macros en Excel con editor VBA y pestaña Programador abierta para automatizar tareas en 2026 Title: Macros en Excel - Guía completa 2026
Macros en Excel – Guía completa 2026

Última actualización: 28 de abril de 2026 · Autor: Jitendra Rao · Lectura: 18 min

Si pasas más de una hora al día copiando datos, dando formato a tablas o repitiendo los mismos clics en una hoja de cálculo, las macros en Excel son, probablemente, la herramienta que más tiempo te va a ahorrar en tu carrera. Llevo años enseñando Excel a equipos financieros, comerciales y administrativos, y en casi todos los casos hay una rutina semanal que se puede convertir en un solo clic. En esta guía te enseño exactamente cómo hacerlo, desde grabar tu primera macro sin tocar código hasta entender el editor de VBA lo suficiente para modificarlo y resolver problemas reales.

Resumen rápido (lo esencial en 30 segundos)

  • Una macro es una secuencia de acciones que Excel guarda como código VBA y vuelve a ejecutar cuando tú lo pides.
  • Para empezar solo necesitas activar la pestaña Programador y pulsar Grabar macro: no hace falta saber programar.
  • Los archivos con macros deben guardarse como .xlsm (no como .xlsx) o las perderás al cerrar.
  • El editor VBA se abre con Alt + F11 y es donde puedes leer, modificar y mejorar el código grabado.
  • Nunca habilites macros de archivos que no son tuyos sin verificar la fuente: las macros maliciosas son uno de los vectores de malware más antiguos en Office.

¿Qué son las macros en Excel?

Una macro es, en pocas palabras, un programita que vive dentro de tu archivo de Excel y reproduce una serie de acciones cada vez que tú lo invocas. Detrás de cada macro hay código escrito en VBA (Visual Basic for Applications), el lenguaje de programación que Microsoft incluye dentro de Office desde hace décadas.

La parte interesante es que no necesitas escribir ni una línea de VBA para crear tu primera macro. Excel trae una grabadora que observa lo que haces (clics, escritura, formatos, fórmulas) y lo traduce automáticamente a código. Cuando le das al play, repite esos pasos exactamente igual, mil veces si hace falta, sin equivocarse y sin cansarse.

Macro y VBA: ¿son lo mismo?

No exactamente. La macro es el resultado: un procedimiento Sub que se puede ejecutar. VBA es el lenguaje en el que está escrita esa macro. Toda macro contiene código VBA, pero no todo el código VBA es una macro pequeña: hay aplicaciones complejas escritas en VBA con formularios, conexiones a bases de datos y centenares de líneas.

¿Por qué deberías aprender a usar macros?

Te voy a contar el caso real que más se repite en mis cursos. Una analista de cuentas por cobrar recibía cada lunes un archivo de 9.000 filas que tenía que limpiar siempre igual: borrar columnas vacías, dar formato moneda, ordenar por vencimiento, filtrar facturas mayores a 30 días y enviar un PDF por correo. Tardaba 45 minutos. Con una macro, hoy tarda siete segundos.

Más allá del ahorro de tiempo, hay otras razones por las que vale la pena dedicar un par de tardes a aprender macros:

  • Reducir errores humanos: el orden de los pasos siempre es el mismo y no hay olvidos.
  • Estandarizar procesos: tu equipo entrega siempre el mismo formato.
  • Hacer cosas que las fórmulas no pueden: renombrar archivos, abrir varios libros, crear hojas dinámicamente, enviar correos desde Excel.
  • Subir tu valor profesional: en LinkedIn, los perfiles que mencionan VBA suelen aparecer en ofertas mejor pagadas dentro del mismo rol.

Si prefieres una alternativa sin código antes de meterte con VBA, también puedes automatizar datos en Excel sin VBA con Power Query y fórmulas dinámicas. Aun así, en cuanto necesitas que Excel tome decisiones (si pasa esto, haz aquello) las macros son casi obligatorias.

Macros vs otras formas de automatizar

HerramientaCurva de aprendizajeMejor caso de usoLimitación principal
Macros / VBAMediaTareas repetitivas dentro de Excel/OfficeSolo Windows/Mac escritorio
Power QueryBaja-mediaLimpieza y combinación de datosNo ejecuta lógica condicional avanzada
Python (openpyxl)AltaProcesos pesados / MLRequiere instalar entorno
Office Scripts (web)MediaExcel para la web / 365No funciona offline

Si quieres explorar opciones modernas, también escribí sobre cómo automatizar Excel con Python y sobre tutorial completo de Power Query.

Habilitar la pestaña Programador en Excel 2019, 2021 y 365

Pasos para habilitar la pestaña Programador en Excel 365 desde Opciones y Personalizar cinta para usar macros
Cómo habilitar la pestaña Programador en Excel

Por defecto, Excel oculta la pestaña Programador (en algunas versiones aparece como Desarrollador) porque la mayoría de usuarios no la necesita. Sin ella, no puedes acceder a la grabadora de macros ni al editor VBA, así que es el primer paso obligatorio.

En Excel 2019, 2021 y 365 (Windows)

  1. Pulsa Archivo → Opciones.
  2. En la ventana que se abre, ve a Personalizar cinta de opciones.
  3. En el panel derecho, en la lista Pestañas principales, marca la casilla Programador.
  4. Acepta. La nueva pestaña aparece junto a «Vista».

En Excel para Mac

  • Menú Excel → Preferencias.
  • Sección Cinta de opciones y barra de herramientas.
  • Activa Programador en Pestañas principales.
💡 Pro tip Si compartes el archivo con compañeros que no ven la pestaña, ellos no pierden las macros, pero no podrán editarlas. Diles que activen Programador siguiendo los mismos pasos.

Cómo grabar tu primera macro paso a paso

Vamos a crear una macro útil: aplicar formato profesional a una tabla de ventas (encabezados en negrita, fondo azul, bordes y formato moneda en la columna de importes). Lo harías así a mano una vez por semana; hoy lo automatizamos.

  • Prepara los datos. Abre un libro nuevo y pega una tabla de ejemplo con columnas Cliente, Producto, Cantidad, Importe. Pon el cursor en cualquier celda interior antes de grabar.
  • Inicia la grabación. En la pestaña Programador, pulsa Grabar macro.
  • Configura la macro. Asigna un Nombre sin espacios (por ejemplo FormatoVentas), una tecla rápida (Ctrl+Shift+F es buena idea para evitar conflictos), y elige Guardar en: Este libro. Acepta.
  • Realiza las acciones. Selecciona la fila de encabezados, pon negrita, fondo azul y letra blanca. Selecciona la columna Importe y aplica formato moneda. Aplica bordes a toda la tabla.
  • Detén la grabación. Vuelve a Programador y pulsa Detener grabación. Tu macro ya existe.
  • Visualiza el código. Pulsa Alt + F11 para abrir el editor VBA. En el panel izquierdo, abre Módulos → Módulo1. Verás todo lo que hiciste convertido en código.
  • Guarda como .xlsm. Cierra el editor, ve a Archivo → Guardar como y elige el tipo Libro de Excel habilitado para macros (*.xlsm). Si lo guardas como .xlsx perderás todas las macros.
  • Ejecuta la macro. Borra el formato de tu tabla y pulsa Ctrl+Shift+F (o ve a Programador → Macros → Ejecutar). El formato vuelve en menos de un segundo.
  • Asígnala a un botón. Pestaña Insertar → Formas → Rectángulo redondeado, dibújalo, escribe «Aplicar formato», clic derecho → Asignar macro → elige FormatoVentas. Ahora tienes un botón en tu hoja.
⚠️ Error típico Si grabas la macro con celdas seleccionadas en vez de seleccionarlas dentro de la macro, al ejecutarla en otra hoja se irá al rango original. Solución: en Programador, activa Usar referencias relativas antes de grabar.

El editor de VBA explicado para principiantes

Editor de Visual Basic en Excel señalando explorador de proyectos, ventana de código y ventana inmediata para escribir macros
El editor VBA explicado para principiantes

Cuando pulsas Alt + F11 entras al Visual Basic Editor (VBE), una ventana que parece intimidante pero que en realidad solo tiene cuatro zonas:

  • Explorador de proyectos (arriba a la izquierda): lista todos los libros abiertos y, dentro de cada uno, sus hojas, módulos y formularios.
  • Ventana de propiedades (abajo a la izquierda): muestra propiedades del elemento seleccionado.
  • Ventana de código (la grande, a la derecha): aquí lees y escribes VBA.
  • Ventana inmediata (Ctrl+G): tu mejor aliada para depurar; ejecuta una línea sobre la marcha con ? o Debug.Print.

Anatomía de una macro grabada

Sub FormatoVentas()
'
' FormatoVentas Macro
' Aplica formato profesional a la tabla
'
' Acceso directo: CTRL+SHIFT+F
'
    Range("A1:D1").Select
    Selection.Font.Bold = True
    Selection.Interior.Color = RGB(30, 136, 229)
    Selection.Font.Color = RGB(255, 255, 255)
    Range("D2:D100").NumberFormat = "$#,##0.00"
End Sub

Las líneas que empiezan con un apóstrofo (‘) son comentarios y VBA los ignora. La estructura básica siempre es Sub Nombre() … End Sub. Todo lo de en medio es lo que se ejecuta de arriba abajo.

Escribir código VBA sencillo desde cero

La grabadora es estupenda para empezar, pero tiene límites: no puede crear bucles, no toma decisiones y suele añadir código basura (Selection, ActiveCell, Scroll) que ralentiza la macro. Por eso conviene aprender a escribir VBA, aunque sea un mínimo.

Tres bloques que cubren el 80% de los casos

1. Una variable y un mensaje:

Sub Saludar()

    Dim nombre As String

    nombre = InputBox("¿Cómo te llamas?")

    MsgBox "Hola, " & nombre & ". Bienvenido a Excel."

End Sub

2. Recorrer un rango con un bucle:

Sub PasarAMayusculas()

    Dim celda As Range

    For Each celda In Range("A2:A100")

        celda.Value = UCase(celda.Value)

    Next celda

End Sub

3. Tomar una decisión con If:

Sub MarcarVencidas()

    Dim i As Long

    For i = 2 To 1000

        If Cells(i, 5).Value < Date Then

            Cells(i, 5).Interior.Color = RGB(255, 199, 199)

        End If

    Next i

End Sub

Con Dim declaras variables, con For recorres rangos y con If tomas decisiones. Domina estos tres patrones y ya puedes escribir el 80% de las macros que necesitas en una oficina.

Ejecutar y asignar macros a botones o atajos

Hay cuatro formas de lanzar una macro, y cada una tiene su momento:

  1. Desde Programador → Macros: ideal para probar mientras desarrollas.
  2. Atajo de teclado: el más rápido para uso personal. Cuidado con sobreescribir atajos de Excel; usa Ctrl+Shift+letra para minimizar conflictos.
  3. Botón en la hoja: el más profesional cuando otra persona va a usar el archivo.
  4. Eventos automáticos: Workbook_Open ejecuta la macro al abrir el libro, Worksheet_Change cuando alguien edita una celda, etc.

Crear un botón de cinta personalizado

Si necesitas que la macro esté disponible siempre (no solo en un libro), guárdala en el Libro de macros personal (Personal.xlsb) y luego añade un botón a la barra de acceso rápido: Archivo → Opciones → Barra de herramientas de acceso rápido → Comandos disponibles: Macros.

Formatos de archivo: .xlsx vs .xlsm vs .xlsb

Tabla visual comparando archivos xlsx xlsm y xlsb para guardar macros en Excel correctamente
Diferencia entre xlsx, xlsm y xlsb

Una de las primeras dudas de quien empieza con macros es por qué su archivo «perdió» todo el código. La respuesta casi siempre está en el formato.

ExtensiónMacrosTamañoCuándo usarlo
.xlsx❌ NoEstándarArchivos sin código, máxima compatibilidad
.xlsm✅ SíIgual que .xlsxEl formato por defecto cuando trabajas con macros
.xlsb✅ SíHasta 50% menorLibros muy grandes con muchas filas y macros
.xltm✅ SíPlantillaPlantilla con macros para crear nuevos libros

Mi regla práctica: si tengo dudas, .xlsm. Solo paso a .xlsb cuando un archivo supera los 30 MB o tarda en abrirse.

Seguridad y configuración del Centro de confianza

Las macros son potentes y, justo por eso, también son uno de los caminos favoritos para colar malware en empresas. Desde 2022 Microsoft bloquea por defecto las macros en archivos descargados de Internet, y conviene entender cómo funciona.

Niveles de seguridad recomendados

  • Deshabilitar todas las macros con notificación (recomendado): Excel te avisa cuando un archivo trae macros y tú decides si las activas. Es el equilibrio correcto entre seguridad y comodidad.
  • Deshabilitar todas las macros sin notificación: máxima seguridad, máxima incomodidad.
  • Deshabilitar todas las macros excepto las firmadas digitalmente: ideal en entornos corporativos donde un equipo IT firma los archivos válidos.
  • Habilitar todas las macros (no recomendado): nunca dejes esto activo en una máquina que abre correos.

Para configurarlo: Archivo → Opciones → Centro de confianza → Configuración del Centro de confianza → Configuración de macros. Microsoft mantiene una guía oficial sobre el bloqueo de macros de Internet que conviene leer si gestionas equipos.

🔒 Aviso de seguridad Nunca habilites macros de un archivo que recibiste por email o descargaste de un portal desconocido. Aunque venga de un contacto conocido, su correo puede estar suplantado. Si dudas, abre el archivo, revisa el código en VBA antes de ejecutarlo, y elimina lo que no entiendas.

Ejemplos prácticos listos para copiar

Aquí tienes cuatro macros que uso casi a diario y que cubren los casos más típicos en cualquier oficina.

1. Eliminar filas vacías

Sub EliminarFilasVacias()

    Dim ultimaFila As Long, i As Long

    ultimaFila = ActiveSheet.UsedRange.Rows.Count

    For i = ultimaFila To 1 Step -1

        If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then

            Rows(i).Delete

        End If

    Next i

End Sub

2. Limpiar espacios extra de toda una columna

Sub LimpiarEspacios()

    Dim c As Range

    For Each c In Selection

        If Not IsEmpty(c) Then

            c.Value = Trim(c.Value)

        End If

    Next c

End Sub

3. Buscar un valor con el equivalente VBA de BUSCARV

Si ya manejas la función BUSCARV en hoja de cálculo, en VBA se llama VLookup y se usa así:

Sub BuscarPrecio()

    Dim resultado As Variant

    On Error Resume Next

    resultado = Application.WorksheetFunction.VLookup( _

                Range("B2").Value, Sheets("Tarifas").Range("A:C"), 3, False)

    If IsError(resultado) Or IsEmpty(resultado) Then

        MsgBox "No encontrado"

    Else

        Range("C2").Value = resultado

    End If

End Sub

4. Exportar la hoja activa a PDF

Sub ExportarPDF()

    Dim ruta As String

    ruta = ThisWorkbook.Path & "\Reporte_" & Format(Date, "yyyymmdd") & ".pdf"

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta, _

        OpenAfterPublish:=True

End Sub

Errores comunes y cómo depurarlos

Estos son los tropiezos que veo cada semana cuando un alumno me escribe diciendo «mi macro no funciona»:

  • «Error 1004: Error definido por la aplicación o el objeto.» Casi siempre significa que la hoja a la que apuntas no existe con ese nombre exacto, o que un rango está mal escrito. Solución: usa Debug.Print y comprueba paso a paso.
  • «Se ha deshabilitado el contenido activo». Es el aviso de Trust Center. Habilita macros desde la barra amarilla, o añade la carpeta a Ubicaciones de confianza.
  • El archivo abre pero la macro no aparece. Lo guardaste como .xlsx en algún momento. Lección aprendida: siempre Guardar como → .xlsm.
  • La macro funciona en mi PC pero no en la del compañero. Probablemente la guardaste en Personal.xlsb; ese archivo es local. Mueve el código a un módulo del libro compartido.
  • La macro va lentísima. Añade al inicio Application.ScreenUpdating = False y al final = True. Solo con eso ganarás 5–10x de velocidad en macros que tocan muchas celdas.

Depuración paso a paso

Pulsa F8 dentro del editor VBA mientras estás en una macro y la ejecutarás línea por línea. Pasa el ratón sobre las variables para ver su valor. Combinado con Debug.Print miVariable y la ventana inmediata, resuelves el 90% de los bugs sin Stack Overflow.

Buenas prácticas que aplico siempre

  1. Nombres descriptivos: Sub ActualizarReporteVentas() es mejor que Sub Macro1().
  2. Comenta lo no obvio: tu yo de dentro de seis meses te lo agradecerá.
  3. Declara variables siempre: añade Option Explicit al inicio del módulo. Te obliga a declarar y evita errores de tipeo silenciosos.
  4. Evita Select y Activate: trabaja directo con objetos. Range(«A1»).Value = 10 es mejor que Range(«A1»).Select : Selection.Value = 10.
  5. Haz copia antes de probar: una macro mal escrita puede borrar 50.000 filas en medio segundo. Y no, Ctrl+Z no funciona después de una macro.
  6. Guarda macros reutilizables en Personal.xlsb: tendrás tu caja de herramientas siempre a mano.
  7. Documenta tus archivos: en una hoja oculta, deja una mini guía de qué hace cada macro y quién la mantiene.
✅ Pro tip de experto Antes de ejecutar una macro destructiva (que borra, sobreescribe o renombra), añádele al inicio: If MsgBox(«¿Seguro?», vbYesNo) = vbNo Then Exit Sub. Es una red de seguridad de tres segundos que te evita disgustos enormes.

Preguntas frecuentes sobre macros en Excel

¿Qué es una macro en Excel y para qué sirve?

Una macro es una secuencia de instrucciones, escritas en VBA, que Excel ejecuta automáticamente para repetir tareas. Sirve para automatizar cualquier proceso repetitivo: dar formato, generar reportes, limpiar datos, enviar correos o crear hojas dinámicamente.

¿Cómo crear una macro en Excel paso a paso si no sé programar?

Activa la pestaña Programador, pulsa «Grabar macro», asigna un nombre, realiza las acciones que quieras automatizar y pulsa «Detener grabación». Excel traduce solo tus clics a código VBA. Después guarda el archivo como .xlsm.

¿Cómo habilito la pestaña Programador en Excel 365?

Archivo → Opciones → Personalizar cinta de opciones → en «Pestañas principales», marca «Programador» y pulsa Aceptar. Aparecerá la pestaña con los botones de Macros, Visual Basic y Grabar macro.

¿Por qué mi macro no funciona al abrir el archivo?

Las tres causas más frecuentes son: (1) lo guardaste como .xlsx en lugar de .xlsm; (2) el Centro de confianza está bloqueando el contenido activo; (3) el archivo viene marcado como «procedente de Internet» desde julio de 2022. Solución: clic derecho en el archivo → Propiedades → marca «Desbloquear», o muévelo a una ubicación de confianza.

¿Cuándo conviene usar una macro y cuándo una fórmula?

Las fórmulas son ideales para cálculos vivos que se actualizan al cambiar datos. Las macros conviene usarlas cuando hay que ejecutar una secuencia de pasos bajo demanda, cuando necesitas tomar decisiones (if/else complejos), cuando trabajas con varios archivos o cuando la fórmula resultante sería demasiado larga e ilegible.

¿Dónde se guardan las macros en Excel?

Dentro del propio archivo .xlsm en módulos VBA, o bien en el Libro de macros personal (Personal.xlsb), un archivo oculto que Excel carga al iniciar y que está en %appdata%\Microsoft\Excel\XLSTART\.

¿La inteligencia artificial va a reemplazar VBA?

Herramientas como Copilot ya generan código VBA y fórmulas a partir de instrucciones en lenguaje natural. No reemplazan VBA, lo aceleran. Saber leer VBA seguirá siendo necesario para auditar y mantener lo que la IA produce.

¿Cuál es la diferencia entre xlsx, xlsm y xlsb?

.xlsx es el formato estándar pero no admite macros. .xlsm es idéntico al anterior pero permite código VBA. .xlsb es un formato binario, hasta un 50% más liviano, ideal para archivos grandes con macros.

Conclusión: el siguiente paso después de leer esto

Aprender a usar macros en Excel no es cuestión de talento, es cuestión de ponerse delante del editor durante un par de tardes con una tarea real. Empieza por algo pequeño: una macro que dé formato a tu informe semanal o que limpie ese archivo CSV que recibes los lunes. Con eso ya estarás recuperando horas. Si dominas las funciones primero, todo va más rápido; si aún las estás puliendo te recomiendo mi guía completa de funciones de Excel.

Cuando tengas la grabadora dominada, da el paso de leer y modificar el código VBA generado. Ese es el momento en el que las macros dejan de ser un truco y se convierten en una herramienta seria de productividad. Cuéntame en los comentarios qué tarea quieres automatizar primero y te oriento sobre el enfoque.

Sobre el autor

Jitendra Rao lleva más de una década formando profesionales en Excel, Power BI y automatización. Es el responsable de Aprende Excel Pro (spanish.exceltutorial.org), donde publica tutoriales prácticos en español.

Fuentes consultadas: Soporte Microsoft – Inicio rápido: crear una macro · Microsoft Learn – Introducción a VBA en Office · Soporte Microsoft – Grabadora de macros · Microsoft Learn – Bloqueo de macros de Internet · Microsoft Learn – Modelo de objetos Workbook.

Deja una respuesta