¿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
Trabajar con arrays
En esta lección guardarás varios valores en una sola variable.
Dim fruits(2) As String declara un array. Ojo al número: el 2 es el índice máximo, así que caben tres elementos, del 0 al 2.
El código de ejemplo guarda tres frutas y las une en un texto con saltos de línea.
Ese detalle del tamaño es exactamente donde tropieza todo el mundo, porque en la mayoría de lenguajes el número entre paréntesis es la cantidad de elementos. En VBA es el último índice. Se puede evitar la ambigüedad escribiendo Dim fruits(0 To 2), que dice lo mismo pero sin dejar lugar a dudas, y es la forma que se recomienda en código compartido.
Cuando el tamaño no se sabe de antemano, se declara vacío (Dim fruits() As String) y se reserva después con ReDim. Para conservar lo ya guardado hay que usar ReDim Preserve; sin Preserve, el contenido anterior se pierde en silencio.
🧪 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.
