El Despertar de la Fuerza: Macros y VBA

¿Qué es realmente una Macro?

Imagina que tienes un "robot" dentro de Excel que puede recordar cada clic, cada tecla que presionas y cada decisión que tomas. Eso es una Macro.

Una macro es una serie de instrucciones que se graban o escriben para ejecutar tareas repetitivas de forma automática. Detrás de escena, todo lo que hace este robot se traduce a un lenguaje de programación llamado VBA (Visual Basic for Applications).

Código VBA en pantalla
El código es el motor de Excel.

¿Qué puedes lograr con VBA?

Automatización

Formatear reportes mensuales en 1 segundo o limpiar datos "sucios" de sistemas externos.

Interfaces (UserForms)

Crear ventanas y formularios emergentes para que otros usuarios capturen datos sin errores.

Nuevas Funciones

¿Excel no tiene la fórmula que necesitas? Con VBA puedes crear tus propias funciones personalizadas.

1. Preparando el Entorno

Seguridad y Extensiones

Las macros pueden contener virus, por lo que Excel las bloquea por defecto. Para guardar tu trabajo, NO uses el clásico .xlsx. Debes guardar tus archivos como:

Libro de Excel habilitado para macros (.xlsm)

Activar la Pestaña "Programador"

Por defecto, las herramientas de poder están ocultas. Sigue estos pasos:

  1. Haz clic derecho en cualquier parte vacía de la cinta de opciones superior.
  2. Elige "Personalizar la cinta de opciones".
  3. En la columna derecha, marca la casilla Programador (o Desarrollador).
  4. Aceptar. ¡Ahora verás una pestaña nueva!

2. La Grabadora de Macros

Es la forma más fácil de crear código sin saber programar. Excel "observa" lo que haces y escribe el código VBA por ti. Pero cuidado, existen dos modos de grabación:

Referencias Absolutas

Si grabas seleccionando la celda A1, la macro SIEMPRE irá a A1, no importa dónde estés antes. Es el comportamiento por defecto.

Referencias Relativas

La macro actúa respecto a la "celda activa". Si estás en B5 y grabas "moverme una a la derecha", la macro se moverá una a la derecha desde donde estés en el futuro.

Tip Pro: Planifica tus pasos en papel antes de grabar. La grabadora también registra tus errores.


Laboratorio

Ejercicio: El "Limpiador de Formatos"

Vamos a crear un sistema que limpie automáticamente una tabla de reporte (quitando colores y bordes) para dejarla lista para nuevos datos.

Paso 1: Preparación de Datos

Crea una tabla en el rango A1:D10 con nombres y montos ficticios. Aplícale colores de fondo chillantes, bordes gruesos y fuentes raras. ¡Ensúciala a propósito!

Paso 2: Grabación de la Macro
  1. Ve a la pestaña Programador y clic en Grabar Macro.
  2. Nombre de la macro: LimpiarReporte (Sin espacios). Guardar en: "Este libro". Aceptar.
  3. ¡Acción! Selecciona el rango A1:D10.
  4. Ve a Inicio > Edición (Icono de goma) > Borrar Formatos.
  5. Haz clic en la celda A1 (para que la selección no se quede marcada).
  6. Ve a Programador > Detener Grabación.
Paso 3: El Botón Profesional

No obligues al usuario a buscar la macro en menús. Dale un botón.

  1. Pestaña Programador > Insertar > Botón (Controles de formulario).
  2. Dibuja el botón en la hoja.
  3. Se abrirá una ventana: elige LimpiarReporte y Aceptar.
  4. Clic derecho al botón > Editar texto > Escribe: "LIMPIAR TABLA".
Paso 4: Hackeando el Código (Bonus)

Vamos a hacer que Excel nos salude al terminar. Entraremos a las entrañas de la macro.

  1. Presiona Alt + F11 para abrir el Editor VBA.
  2. A la izquierda, busca la carpeta Módulos y doble clic en Módulo1.
  3. Verás el código que Excel escribió por ti. Busca la línea que dice End Sub al final.
  4. Justo ENCIMA de esa línea, escribe o pega esto:
MsgBox "¡La tabla ha sido limpiada con éxito!", vbInformation, "Proceso Terminado"

¡Vuelve a Excel y presiona tu botón para ver el resultado!

Volver al Temario