Macros de Excel para Principiantes
Qué pueden hacer las macros por ti
Una macro es esencialmente una grabación de tus acciones en Excel que puedes reproducir en cualquier momento. Si te encuentras repitiendo la misma secuencia de operaciones una y otra vez — formatear este informe, limpiar esa exportación de datos, crear este gráfico — has encontrado un candidato para la automatización. Las macros convierten las tareas repetitivas en operaciones de un solo clic, ahorrándote horas cada semana.
No necesitas ser programador. El Grabador de macros de Excel captura tus pulsaciones de teclas y clics del ratón, traduciéndolos automáticamente a código VBA (Visual Basic for Applications). Una vez grabada, ejecutas la macro mediante un botón, atajo de teclado o evento del libro.
Paso a paso: Graba tu primera macro
Escenario: Cada lunes recibes un informe de ventas sin formato que necesita el mismo tratamiento: encabezados en negrita, formato de moneda en la columna de ingresos, ajuste automático del ancho de columnas, inmovilizar la fila superior y añadir una fila de totales. Automatízalo.
Paso 1 — Habilitar la pestaña Programador
- Haz clic derecho en cualquier parte de la cinta de opciones > Personalizar la cinta de opciones.
- En el panel derecho, marca Programador. Haz clic en Aceptar.
- La pestaña Programador ahora aparece en la cinta de opciones — este es tu centro de control de macros.
Paso 2 — Planificar y practicar antes de grabar
- El Grabador de macros captura cada clic y pulsación de tecla — incluidos los errores. Practica primero tu secuencia exacta sin grabar.
- Para formatear un informe, tu secuencia podría ser: seleccionar todo (Ctrl+A), poner encabezados en negrita (Ctrl+B), formatear la columna de ingresos como moneda (Ctrl+Shift+$), ajustar automáticamente las columnas (seleccionar todo > doble clic en el borde de columna), inmovilizar la fila superior (Vista > Inmovilizar paneles > Inmovilizar fila superior).
- Practica cada operación. Usa atajos de teclado cuando sea posible — producen código VBA más limpio que los clics del ratón.
Paso 3 — Grabar la macro
- Programador > Grabar macro.
- Nombre de la macro:
FormatWeeklyReport(sin espacios, descriptivo). - Tecla de atajo: Ctrl+Shift+R (usa siempre Ctrl+Shift para evitar sobrescribir atajos integrados como Ctrl+C).
- Guardar macro en: Libro de macros personal si la usarás en todos los archivos, o Este libro si solo es para este archivo.
- Descripción: "Encabezados en negrita, formato moneda en ingresos, ajustar columnas, inmovilizar fila superior, añadir totales."
- Haz clic en Aceptar. La grabación comienza — la barra de estado muestra un botón de detener.
Paso 4 — Ejecutar cada acción de formato con cuidado
- Pulsa Ctrl+A para seleccionar todos los datos.
- Aplica negrita a los encabezados: selecciona la fila 1, Ctrl+B.
- Formatea la columna de ingresos: selecciona la columna C, Ctrl+Shift+$ (formato moneda).
- Ajustar columnas automáticamente: pulsa Ctrl+A, luego haz doble clic en cualquier borde de columna en el encabezado.
- Inmovilizar fila superior: Vista > Inmovilizar paneles > Inmovilizar fila superior.
- Añadir fila de totales: selecciona la última fila vacía debajo de los datos, escribe
=SUM(C2:C100), formatea como negrita y moneda. - Haz clic en Programador > Detener grabación (o haz clic en el botón cuadrado de detener en la barra de estado).
Paso 5 — Probar en una copia nueva
- Crea una copia del informe sin formato de la próxima semana (prueba siempre las macros en copias primero — no hay Deshacer para macros).
- Pulsa Ctrl+Shift+R (tu atajo asignado).
- Observa cómo Excel ejecuta todos los pasos de formato en menos de un segundo. Tu tarea semanal de 5 minutos ahora es instantánea.
- Si algo salió mal: Programador > Macros > selecciona tu macro > Editar, para ver y modificar el código VBA.
Técnicas clave
Técnica 1 — Usar referencias relativas para macros flexibles
Por defecto, las macros graban referencias de celda absolutas (siempre seleccionan B2). Para macros que deben funcionar desde donde esté el cursor:
- Programador > Usar referencias relativas (actívalo antes de grabar).
- Ahora, si "bajas 3 celdas y escribes SUM", la macro repite ese movimiento relativo independientemente de la celda inicial — perfecto para macros aplicadas en diferentes posiciones.
Técnica 2 — Añadir un botón a tu hoja de cálculo
- Programador > Insertar > Botón (Control de formulario). Dibuja un rectángulo en tu hoja.
- Aparece el cuadro de diálogo Asignar macro — selecciona tu macro y haz clic en Aceptar.
- Haz clic derecho en el botón > Editar texto para etiquetarlo como "Formatear informe".
- Los botones hacen que las macros sean visibles para cualquiera que abra el libro — no es necesario recordar atajos de teclado.
Errores comunes
- Grabar acciones innecesarias. El grabador captura el desplazamiento, selecciones accidentales de celdas y cambios de formato no deseados. Revisa el código grabado (Alt+F11) y elimina las líneas sin sentido.
- No desactivar la actualización de pantalla. Ver la macro parpadear a través de cada selección de celda es lento y distractor. Añade
Application.ScreenUpdating = Falseal inicio yApplication.ScreenUpdating = Trueal final para una mejora de velocidad de 5 a 10 veces. - La seguridad de macros bloquea tu trabajo. Excel bloquea las macros de fuentes no confiables por defecto. Guarda los libros con macros habilitadas como .xlsm. Al compartir, indica a los destinatarios que activen el contenido cuando aparezca la advertencia de seguridad.
- No hay Deshacer disponible. Las macros borran la pila de Deshacer. Prueba siempre primero en una copia de los datos.
Consejos avanzados
- Editar el código grabado para mayor eficiencia: Las macros grabadas usan mucho
SelectyActivate(lento). Edita para manipulación directa de objetos: cambiaRange("A1").Select: Selection.CopyporRange("A1").Copy Destination:=Range("B1"). - Eventos de libro para activación automática: Usa
Workbook_Open()para ejecutar una macro al abrir un archivo, oWorksheet_Change()para reaccionar a ediciones de celdas. Estos eliminan por completo la ejecución manual de macros. - Funciones personalizadas con VBA: Escribe una función VBA como
Function Commission(Sales) As Double: Commission = Sales * 0.1: End Function, luego úsala en hojas como=Commission(A2). Amplía la biblioteca de fórmulas de Excel con tu lógica de negocio.