¿Ya dominas lo básico? Un curso estructurado de VBA es la vía rápida para dar el salto.
Ver cursos de VBA en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (MsgBox)
- 03Declarar variables (Dim)
- 04Condicionales (la sentencia If)
- 05Repetir (la sentencia For)
- 06Repetir (la sentencia Do While)
- 07Escribir un procedimiento Sub
- 08Procedimientos Function (trabajo que devuelve un valor)
- 09Leer y escribir celdas (Range y Cells)
- 10Trabajar con arrays
- 11Trabajar con texto
- 12La sentencia With
- 13Variables de objeto y trabajo con hojas
- 14Recorrer elementos (For Each)
- 15Manejo de errores (On Error)
- 16La sentencia Select Case
- 17Argumentos (ByVal y ByRef)
- 18Trabajar con colecciones (Collection)
- 19Grabar macros y procedimientos de evento
- 20[Proyecto] Construye una hoja de inventario
Grabar macros y procedimientos de evento
En esta lección conocerás las dos formas de conseguir código sin escribirlo todo a mano.
La primera es la grabadora de macros (Vista → Macros → Grabar macro): haces la operación una vez con el ratón y Excel escribe el VBA equivalente. La segunda son los procedimientos de evento, que se ejecutan solos cuando ocurre algo: al cambiar una celda, al abrir el libro, al guardar.
El código de ejemplo reacciona cuando se modifica la celda A1. Como en esta página no hay eventos reales, lo que ves es la forma habitual del código y el mensaje que aparecería.
La grabadora es el mejor profesor de VBA que existe: cuando no sepas qué método usar para algo, grábalo y mira el código. Pero lo que genera no es código que convenga dejar tal cual: está lleno de Select y Activate que reproducen tus clics y hacen la macro lenta y frágil. Lo sensato es grabar para aprender los nombres, y luego reescribir.
Sobre los eventos, la trampa clásica: si dentro de Worksheet_Change escribes en una celda, eso dispara otro Worksheet_Change, y la macro se llama a sí misma sin fin. Se evita rodeando el cambio con Application.EnableEvents = False y volviéndolo a poner en True al terminar.
🧪 Este sitio no puede compilar ni ejecutar VBA directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
