Macros para Excel con VBA | Aprender21


Las macros en Excel son secuencias de comandos que automatizan tareas repetitivas. Puedes grabar una macro sin programar o editarla con VBA (Visual Basic for Applications) para crear automatizaciones más avanzadas. En esta guía aprenderás paso a paso cómo crear, editar y ejecutar macros de forma segura.

Actualizado: Diciembre 2025

¿Qué son las macros en Excel?

Una macro en Excel es un conjunto de instrucciones grabadas que se ejecutan automáticamente con un solo clic o atajo de teclado. Piensa en ella como una "grabación" de los pasos que haces manualmente en Excel.

Por ejemplo, si todos los días formateas un informe de la misma manera (ajustar columnas, aplicar colores, agregar bordes), puedes grabar esos pasos una vez y después ejecutarlos automáticamente.

💡 Dato clave: Las macros se escriben en un lenguaje llamado VBA (Visual Basic for Applications). No necesitas saber programar para usar macros básicas, pero conocer VBA te permite crear automatizaciones más potentes.

Macro vs. VBA: ¿Cuál es la diferencia?

Concepto Qué es Nivel requerido
Macro grabada Secuencia de acciones grabadas con el grabador de Excel Principiante (sin código)
Macro VBA Código escrito manualmente en Visual Basic Intermedio/Avanzado
Función personalizada Función creada con VBA que se usa como fórmula Intermedio

¿Para qué sirven las macros?

Las macros son especialmente útiles cuando tienes que repetir las mismas acciones frecuentemente. Estos son los usos más comunes:

Casos de uso frecuentes de macros en Excel
Tarea Sin macro Con macro
Formatear informe mensual 15-20 minutos cada vez 1 clic (segundos)
Consolidar datos de 10 hojas 30+ minutos manual Automático en segundos
Limpiar y ordenar datos importados Repetitivo y propenso a errores Consistente cada vez
Generar reportes con gráficos Crear manualmente Un botón genera todo
Enviar emails desde Excel Copiar/pegar uno por uno Envío masivo automático

Ventajas principales de usar macros

  • Ahorro de tiempo: Tareas de horas se reducen a segundos
  • Reducción de errores: Elimina errores humanos en tareas repetitivas
  • Consistencia: El resultado es igual cada vez que se ejecuta
  • Productividad: Te enfocas en análisis, no en trabajo manual
  • Estandarización: Todos en el equipo usan el mismo proceso
Infografía paso a paso para crear macros en Excel con VBA
Infografía: Proceso para crear macros en Excel

Cómo grabar tu primera macro (sin programar)

La forma más fácil de crear una macro es usando el Grabador de Macros de Excel. No necesitas escribir código, Excel lo genera automáticamente.

1Activa la pestaña Desarrollador

Si no ves la pestaña "Desarrollador" en Excel:

  • Ve a Archivo → Opciones → Personalizar cinta de opciones
  • Marca la casilla "Desarrollador"
  • Haz clic en Aceptar

2Inicia la grabación

  • Ve a la pestaña Desarrollador → Grabar macro
  • Asigna un nombre (sin espacios, ej: "FormatearInforme")
  • Opcionalmente asigna un atajo de teclado (ej: Ctrl+Shift+F)
  • Elige dónde guardarla: "Este libro" o "Libro de macros personal"
  • Haz clic en Aceptar

3Realiza las acciones que quieres automatizar

Ahora Excel está grabando todo lo que hagas. Por ejemplo:

  • Selecciona un rango de celdas
  • Aplica formato (negrita, colores, bordes)
  • Ajusta el ancho de columnas
  • Crea una fórmula

4Detén la grabación

  • Ve a Desarrollador → Detener grabación
  • O haz clic en el cuadrado pequeño en la barra de estado (abajo izquierda)
💡 Consejo: Antes de grabar, planifica los pasos. Si te equivocas durante la grabación, el error también quedará grabado. Es mejor practicar primero y luego grabar.

Cómo ejecutar una macro

Hay varias formas de ejecutar una macro ya creada:

Método 1: Desde el menú Macros

  1. Ve a Desarrollador → Macros (o presiona Alt + F8)
  2. Selecciona la macro de la lista
  3. Haz clic en Ejecutar

Método 2: Con atajo de teclado

Si asignaste un atajo al crear la macro (ej: Ctrl+Shift+F), simplemente presiónalo.

Método 3: Con un botón en la hoja

  1. Ve a Desarrollador → Insertar → Botón (Control de formulario)
  2. Dibuja el botón en la hoja
  3. Selecciona la macro a asignar
  4. Ahora con un clic en el botón se ejecuta la macro

Cómo editar macros en VBA

Para modificar una macro o crear una más avanzada, necesitas acceder al Editor de VBA:

1Abre el Editor de VBA

Presiona Alt + F11 o ve a Desarrollador → Visual Basic

Editor de código VBA en Microsoft Excel
Editor de Visual Basic para Aplicaciones (VBA) en Excel

2Localiza tu macro

En el panel izquierdo, expande tu libro y busca en Módulos. Las macros grabadas suelen estar en "Módulo1".

3Edita el código

Verás algo como esto:

Sub FormatearInforme()
'
' FormatearInforme Macro
' Formatea el informe mensual de ventas
'
    Range("A1:E1").Select
    Selection.Font.Bold = True
    Selection.Interior.Color = RGB(102, 126, 234)
    Selection.Font.Color = RGB(255, 255, 255)
    Columns("A:E").AutoFit
End Sub

Estructura básica de una macro VBA

Elemento Qué hace Ejemplo
Sub NombreMacro() Inicia la macro Sub MiMacro()
End Sub Finaliza la macro End Sub
' Comentario Texto explicativo (ignorado) ' Esto es un comentario
Range("A1") Referencia a una celda Range("A1:B10")
Cells(fila, col) Celda por número Cells(1, 1) = A1

Ejemplos de código VBA útiles

Aquí tienes macros listas para copiar y usar:

Ejemplo 1: Formatear encabezados automáticamente

Sub FormatearEncabezados()
    ' Selecciona la primera fila con datos
    Range("A1").CurrentRegion.Rows(1).Select
    
    ' Aplica formato
    With Selection
        .Font.Bold = True
        .Font.Size = 12
        .Interior.Color = RGB(102, 126, 234)
        .Font.Color = RGB(255, 255, 255)
        .HorizontalAlignment = xlCenter
    End With
    
    ' Ajusta ancho de columnas
    Cells.EntireColumn.AutoFit
End Sub

Ejemplo 2: Eliminar filas vacías

Sub EliminarFilasVacias()
    Dim ultimaFila As Long
    Dim i As Long
    
    ultimaFila = Cells(Rows.Count, 1).End(xlUp).Row
    
    ' Recorre de abajo hacia arriba
    For i = ultimaFila To 1 Step -1
        If WorksheetFunction.CountA(Rows(i)) = 0 Then
            Rows(i).Delete
        End If
    Next i
    
    MsgBox "Filas vacías eliminadas", vbInformation
End Sub

Ejemplo 3: Crear función personalizada (para usar como fórmula)

Function CalcularIVA(monto As Double, Optional tasa As Double = 0.21) As Double
    ' Uso en celda: =CalcularIVA(A1) o =CalcularIVA(A1, 0.105)
    CalcularIVA = monto * tasa
End Function

Ejemplo 4: Guardar cada hoja como archivo separado

Sub ExportarHojasComoArchivos()
    Dim ws As Worksheet
    Dim ruta As String
    
    ruta = ThisWorkbook.Path & "\"
    
    For Each ws In ThisWorkbook.Worksheets
        ws.Copy
        ActiveWorkbook.SaveAs ruta & ws.Name & ".xlsx"
        ActiveWorkbook.Close False
    Next ws
    
    MsgBox "Hojas exportadas a: " & ruta, vbInformation
End Sub

Seguridad: habilitar macros de forma segura

⚠️ Advertencia: Las macros pueden contener código malicioso. Solo habilita macros de archivos de fuentes confiables.

Cómo habilitar macros en Excel

1Configurar el nivel de seguridad

  1. Ve a Archivo → Opciones → Centro de confianza
  2. Haz clic en Configuración del Centro de confianza
  3. Selecciona Configuración de macros

Niveles de seguridad disponibles

Opción Qué hace Recomendado para
Deshabilitar todas Ninguna macro se ejecuta Máxima seguridad
Deshabilitar con notificación Pregunta antes de habilitar ✅ Uso general (recomendado)
Deshabilitar excepto firmadas Solo ejecuta macros con firma digital Entornos corporativos
Habilitar todas Ejecuta cualquier macro automáticamente ⚠️ No recomendado

Buenas prácticas de seguridad

  • ✅ Usa "Deshabilitar con notificación" como configuración predeterminada
  • ✅ Solo habilita macros de archivos que tú creaste o de fuentes confiables
  • ✅ Guarda archivos con macros en formato .xlsm (no .xlsx)
  • ✅ Revisa el código (Alt+F11) antes de habilitar macros desconocidas
  • ❌ Nunca habilites macros de emails de remitentes desconocidos

Errores comunes y cómo evitarlos

Error Causa Solución
"No se puede ejecutar la macro" Macros deshabilitadas Habilitar en Centro de confianza
"Subíndice fuera del intervalo" Referencia a hoja o celda inexistente Verificar nombres de hojas/rangos
"Error de tipo" Tipo de dato incorrecto Verificar que las celdas tienen el formato esperado
La macro no hace nada Guardaste como .xlsx en vez de .xlsm Guardar como "Libro habilitado para macros"
Macro muy lenta Actualizaciones de pantalla activas Agregar Application.ScreenUpdating = False

Preguntas frecuentes sobre macros en Excel

¿Qué es una macro en Excel?

Una macro es un conjunto de instrucciones automatizadas que ejecutan tareas repetitivas en Excel. Puede ser tan simple como dar formato a celdas o tan compleja como procesar miles de registros y generar reportes automáticos.

¿Necesito saber programar para usar macros?

No para macros básicas. El Grabador de Macros de Excel te permite crear automatizaciones sin escribir código. Sin embargo, aprender VBA te permitirá crear macros más potentes y personalizadas.

¿Cómo habilito las macros en Excel?

Ve a Archivo → Opciones → Centro de confianza → Configuración del Centro de confianza → Configuración de macros. Selecciona "Deshabilitar todas las macros con notificación" para que Excel te pregunte antes de habilitarlas.

¿Las macros son peligrosas?

Las macros en sí no son peligrosas, pero pueden contener código malicioso si provienen de fuentes no confiables. Por eso Excel las deshabilita por defecto. Solo habilita macros de archivos que tú creaste o de fuentes verificadas.

¿En qué formato debo guardar un archivo con macros?

Debes guardarlo como .xlsm (Libro de Excel habilitado para macros). Si guardas como .xlsx normal, las macros se perderán.

¿Puedo usar macros en Excel Online o Google Sheets?

Excel Online tiene soporte limitado para macros. Google Sheets usa un lenguaje diferente llamado Google Apps Script. Las macros VBA de Excel de escritorio no son compatibles directamente.

Aprende más: Curso de Macros con VBA

Si quieres dominar las macros y VBA para automatizar tu trabajo en Excel, te recomendamos el Curso de Macros para Office - VBA de Aprender21.

En este curso aprenderás:

  • Fundamentos de programación VBA desde cero
  • Crear macros profesionales para Excel, Word y PowerPoint
  • Automatizar informes y procesos de negocio
  • Buenas prácticas y debugging de código
  • Proyecto final con casos reales de automatización

Artículos relacionados





Te invitamos a conocer el
Curso de Macros para Office - VBA
de Aprender21 certificado por ITSS y UTN