¿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
La sentencia With
En esta lección aplicarás varias operaciones al mismo objeto sin repetir su nombre.
With objeto ... End With abre un bloque en el que las propiedades se escriben empezando por un punto: .Value, .Font.Bold. Todas se aplican al objeto indicado arriba.
El código de ejemplo pone un texto en A1 y lo marca en negrita.
No es solo cuestión de escribir menos. Cada vez que nombras Range("A1"), VBA vuelve a resolver esa referencia; dentro de un With se resuelve una sola vez, así que además de leerse mejor va más rápido. En una macro que da formato a muchas celdas, la diferencia se nota.
El descuido típico es olvidar el punto inicial. Escribir Value = "Total" dentro del bloque no da error de sintaxis: VBA lo entiende como una variable suelta, y la celda no cambia. Como no salta ningún aviso, es un fallo que cuesta encontrar; cuando algo dentro de un With «no hace nada», lo primero que hay que mirar son los puntos.
🧪 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).
🔗 El mismo tema en otros lenguajes
Mira cómo se escribe lo mismo en otro lenguaje.
