Lista de matrices en VBA

Iqra Hasnain 15 febrero 2024
Lista de matrices en VBA

Presentaremos las listas en VBA y cómo usarlas en nuestros programas con ejemplos.

Lista de matrices en VBA

Hay muchas situaciones en las que debemos almacenar datos en una estructura de datos para mostrarlos en mensajes o generarlos en una hoja de Excel. Para este propósito, VBA proporciona ArrayList, una estructura de datos que podemos usar para almacenar datos.

Como todos sabemos, los arreglos tienen una longitud fija, pero cuando usamos ArrayList para crear una variedad de valores, no está limitado por un tamaño fijo.

Para usar ArrayList, debemos establecer la referencia porque es una biblioteca externa o un objeto. Hay dos tipos de matrices en VBA.

El primero es la matriz estática que necesita conocer el límite inferior y superior en la declaración de tiempo. Por otro lado, el segundo es un arreglo dinámico que no requiere un límite inferior o superior al momento de la declaración.

Aún así, debemos proporcionar la longitud después de declarar las matrices dinámicas mediante la instrucción redim en VBA. Pero cuando usamos ArrayList, no tenemos que declarar los límites superior o inferior.

Primero establezcamos la referencia antes de usar ArrayList en nuestros ejemplos. Para establecer la referencia, debemos seguir los siguientes pasos.

  1. Primero, debemos ir a la pestaña Desarrolladores y hacer clic en Visual Basic, como se muestra en la imagen a continuación.

    Configuración de la referencia para ArrayList en VBA Paso 1

  2. Iremos al menú Herramientas y haremos clic en Referencia, como se muestra a continuación en la imagen.

    Configuración de la referencia para ArrayList en VBA Paso 2

  3. Ahora, buscaremos la referencia mscorlib.dll, la seleccionaremos y haremos clic en Aceptar, como se muestra en la siguiente imagen.

    Configuración de la referencia para ArrayList en VBA Paso 3

Una vez que hayamos establecido la referencia del ArrayList, pasaremos a un ejemplo en el que crearemos un ArrayList de frutas. Primero, crearemos nuestro sub, como se muestra a continuación.

# VBA
Sub testExample()

End Sub

Ahora, dentro de nuestra función, definiremos “frutas” como una “Lista de arreglos” y estableceremos la variable en una nueva “Lista de arreglos”, como se muestra a continuación.

# VBA
Sub testExample()

  Dim fruits As ArrayList
  Set fruits = New ArrayList

End Sub

Ahora, agregaremos elementos a la ArrayList uno por uno utilizando el método Add y le asignaremos directamente una cadena de nombres de frutas como queramos.

# VBA
Sub testExample()

  Dim fruits As ArrayList
  Set fruits = New ArrayList

  fruits.Add "Mango"
  fruits.Add "Apple"
  fruits.Add "Banana"

End Sub

Ahora, si queremos llamar a cualquiera de estas frutas, podemos llamarlas rápidamente usando el orden de referencia en el que se agregan. Por ejemplo, si queremos obtener el primer fruto de ArrayList, podemos llamarlo rápidamente de la misma manera que llamamos a cualquier objeto de una matriz usando el índice de esa matriz.

Intentemos mostrar frutas en un cuadro de mensaje en el mismo orden que se muestra a continuación.

# VBA
Sub testExample()
  Dim fruits As ArrayList
  Set fruits = New ArrayList

  fruits.Add "Mango"
  fruits.Add "Apple"
  fruits.Add "Banana"
  MsgBox ("First Fruit is: " & fruits(0) & vbNewLine & "Second Fruit is: " & fruits(1) & vbNewLine & "Third Fruit is: " & fruits(2))

End Sub

Ahora, vamos a ejecutarlo y comprobar cómo funciona:

Resultado de usar ArrayList en VBA

Como podemos ver en el ejemplo anterior, es muy fácil de usar y generar los valores de ArrayList, y podemos almacenar fácilmente tantos valores en ArrayList usando un método simple de Agregar.