Excel VBA ArrayList

Las estructuras de datos se utilizan para almacenar una serie de datos en lenguajes de programación. Se une a la memoria en lugar de a la dirección. Un ArrayList es una de las estructuras de datos en Excel. La comparación con las matrices normales en Excel ArrayList es dinámica. Por lo tanto, no se necesita una declaración inicial de tamaño. ArrayList no es parte de VBA, está asociado con una biblioteca externa que se puede usar con VBA.

ArrayList se puede definir como una lista de una ubicación de memoria cercana. Donde se recuperan los valores utilizando los números de índice. La lista comienza con un número de índice '0', el primer elemento se insertará en el índice '0' y al resto le sigue 1, 2, 3, etc. ArrayList ofrece muchas operaciones integradas, ordenando, agregando, eliminando, inversión, etc. son algunos de ellos.

Agregar la biblioteca

Para usar ArrayList en el VBA, debe incluir la biblioteca ' mscorlib.dll' que viene con .NET Framework .

  • Presione F11 o haga clic con el botón derecho en el nombre de la hoja para obtener la ventana de código. Vaya a la ventana de código VBA, en el menú principal, seleccione Herramientas .

  • El menú de herramientas contiene la opción 'referencias' y consta de una lista de bibliotecas que admite VBA para incluir diferentes objetos. Haga clic en la opción de referencia .

  • Le llevará a una ventana con una lista de diferentes bibliotecas que admite VBA y Excel. Desplácese hacia abajo para encontrar el ' dll'. Marque la casilla para confirmar la selección y luego presione el botón 'Aceptar'.

Ahora la biblioteca está incluida en su código VBA y admitirá diferentes métodos asociados con una ArrayList.

¿Cómo crear VBA ArrayList en Excel?

A continuación se muestran los diferentes ejemplos para crear VBA ArrayList en Excel.

Puede descargar esta plantilla Excel de VBA ArrayList aquí - Plantilla Excel de VBA ArrayList

Excel VBA ArrayList - Ejemplo # 1

¿Cómo agregar valores a ArrayList usando VBA?

ArrayList actúa como una lista donde podemos agregar valores. Esto se almacenará automáticamente en las diferentes partes a partir de 0, 1, 2, etc. Los valores se pueden agregar o insertar en ArrayList utilizando el método add.

En este ejemplo, aprenderá cómo agregar una lista de valores en una ArrayList. Siga los pasos a continuación para agregar ArrayList usando el código VBA en Excel.

Paso 1: para agregar una lista de valores a una ArrayList, cree una función arraylist1.

Código:

 Private Sub arraylist1 () End Sub 

Paso 2: ahora queremos incluir ArrayList en la función como un objeto donde una lista se declara como ArrayList.

Código:

 Private Sub arraylist1 () Dim alist As ArrayList End Sub 

Paso 3: Dado que este es un objeto para usarlo, debe crear una instancia de ArrayList. Establecer una nueva instancia para este objeto.

Código:

 Private Sub arraylist1 () Dim alist As ArrayList Set alist = New ArrayList End Sub 

Paso 4: ahora, utilizando la propiedad 'Agregar' de una ArrayList, se agregan los valores a la ArrayList. Donde la lista se agrega a los valores del índice en un orden 0, 1, 2, 3 etc.

Código:

 Private Sub arraylist1 () Dim alist As ArrayList Set alist = New ArrayList alist.Add "192" 'index (0) alist.Add "168"' index (1) alist.Add "1" 'index (2) alist.Add "240" 'index (3) End Sub 

Paso 5: Para verificar si los valores se agregaron a la lista, imprimamos los valores de la matriz usando un cuadro de mensaje. Para imprimir los valores, se imprime cada índice ya que los valores se almacenan en estas particiones.

Código:

 Private Sub arraylist1 () Dim alist As ArrayList Set alist = New ArrayList alist.Add "192" 'index (0) alist.Add "168"' index (1) alist.Add "1" 'index (2) alist.Add "240" 'index (3) MsgBox ("\\" & alist (0) & "." & Alist (1) & "." & Alist (2) & "." & Alist (3)) End Sub 

Paso 6: Presione F5 o el botón Ejecutar para ejecutar el programa y los valores se imprimirán de la siguiente manera. Aquí se almacena una dirección IP en ArrayList y, mientras se imprimen los valores, se concatenan anotaciones adicionales para formar la dirección IP en un formato adecuado.

Error de automatización en VBA

Es un error común que ocurre mientras se ejecuta una ArrayList. Un error de automatización puede encontrar 'Error de tiempo de ejecución' -2146232576 (80131700) Error de automatización '

Esto se debe a que no está instalada la versión correcta de .NET Framework. Para trabajar con ArrayList debe tener un mínimo de .NET 3.5 o las versiones superiores de .NET framework.

Excel VBA ArrayList - Ejemplo # 2

Ordenar ArrayList usando el código VBA

ArrayList admite diferentes funciones como ordenar, invertir, etc., esto ayuda a ordenar los valores insertados en una ArrayList. Una vez que agregue una lista a ArrayList, es posible revertir la lista insertada.

Siga los pasos a continuación para ordenar ArrayList usando el código VBA:

Paso 1: Cree una función llamada arraysort1 para realizar la clasificación dentro de los valores insertados en una ArrayList.

Código:

 Sub arraysort1 () End Sub 

Paso 2: Declare un objeto 'arraysort' de ArrayList. Use este objeto para agregar y ordenar los valores dentro de ArrayList.

Código:

 Sub arraysort1 () Dim arraysort As ArrayList End Sub 

Paso 3: similar al primer ejemplo, debe crear una nueva instancia del objeto declarado. Establezca esta instancia como una nueva ArrayList.

Código:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList End Sub 

Paso 4: ahora, utilizando el método 'Agregar', inserte los elementos en ArrayList. Que no posee ningún orden de valores. Insertó al azar algunos valores en la lista.

Código:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" End Sub 

Paso 5: para observar la diferencia en la ArrayList, imprimamos la ArrayList después de insertar los valores y antes de ordenarla.

Código:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) End Sub 

Paso 6: Presione F5 en el teclado o el botón Ejecutar en la ventana de código para ejecutar el programa para imprimir la Lista de Array. ArrayList se imprime en el mismo orden en que se inserta, ya que usamos los números de índice en su orden correcto.

Paso 7: Ahora, a esta lista, aplique la propiedad de ordenación de ArrayList. Use el método de clasificación para ordenar la lista insertada. La propiedad de ordenación ordenará la lista de valores en orden ascendente de forma predeterminada.

Código:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" arraysort .Sort MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) End Sub 

Paso 8: presione F5 o el botón Ejecutar debajo de VBE para ejecutar este código, donde los valores se ordenan e imprimen en orden de menor a mayor.

Excel VBA ArrayList - Ejemplo # 3

Invertir la ArrayList usando el código VBA

Cuando desee invertir el orden de los valores insertados en un método inverso ArrayList está disponible. Esto invertirá el orden de la lista desde su orden actual. Ahora ya hemos ordenado la ArrayList en el ejemplo anterior, que está en orden ascendente.

Intentemos invertir la matriz ordenada para hacerla descendente. Use el método inverso de ArrayList para hacer esto.

Código:

 Sub arraysort2 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" arraysort .Sort arraysort.Reverse MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) End Sub 

Después de aplicar el método inverso, ArrayList se convertirá en orden descendente y usará el cuadro de mensaje para imprimir la matriz inversa. La lista ordenada cambia de un valor grande a un valor pequeño.

Cosas para recordar

  • ArrayList es de naturaleza dinámica; No requiere reinicialización.
  • Diferentes métodos integrados están asociados con ArrayList.
  • En comparación con la matriz, ArrayList es fácil de usar en Excel VBA.
  • Las bibliotecas .NET compatibles deben incluirse en el VBA para trabajar con ArrayList.
  • ArrayList es una ubicación de memoria continua que se identifica utilizando valores de índice.

Artículos recomendados

Esta es una guía de VBA ArrayList. Aquí discutimos cómo crear ArrayList en Excel VBA junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Guía para usar matrices de VBA
  2. Excel Ordenar por número
  3. ¿Cómo ordenar en Excel usando VBA?
  4. Tutoriales sobre ordenación en Excel

Categoría: