Una colección es un tipo de datos que contiene objetos de almacenamiento como matrices (pero diferentes). Al escribir códigos básicos de VBA, debe haber utilizado libros de trabajo, hojas de trabajo, rangos, etc. Todos son colecciones. En este artículo, aprenderemos sobre las colecciones de VBA.
¿Qué es una colección en VBA?
Una colección es un tipo de datos que almacena tipos similares de objetos como matrices.
Pero a diferencia de las matrices, su tamaño se puede aumentar o disminuir dinámicamente según los requisitos.
Puede agregar, buscar, recuperar y eliminar elementos de las colecciones.
A diferencia de las matrices, no puede cambiar los valores de los elementos de las colecciones. Si lo desea, use matrices como elemento en la colección.
Una colección tiene 4 propiedades o métodos asociados.
Colección.Añadir colección.Colección de artículos.Count Colección.Quitar
A través de este artículo, exploraremos el uso de estas propiedades.
¿Cómo crear una colección en VBA?
Una colección es un objeto, por lo que es necesario declararlo e inicializarlo. Como cualquier otro objeto en VBA, existen dos métodos para crear una colección en VBA.
1. Creación instantánea
Atenuar elementos como nueva colección
En el método anterior, el objeto se crea instantáneamente. Puede comenzar a utilizar esta colección para sus necesidades de inmediato.
2. Creación retrasada
Atenuar elementos como elementos del conjunto de colección = Nueva colección
En este método, primero creamos una referencia de colección y, cuando es necesario, inicializamos con un objeto de colección. Con este método, puede optar por crear la colección en función de algunos criterios.
Agregar elementos a una colección (Collection.Add)
Usamos el método Add para agregar nuevos elementos a una colección.
artículos.Añadir "manzanas"
El código anterior agregará la cadena "Manzanas" en la colección.
elementos.Añadir 1.4
El código anterior agregará el doble 1.4 al final de la colección.
También podemos definir claves para estos elementos. Estas claves se pueden utilizar para acceder a los elementos de la colección.
Insertar elementos en la colección antes o después de un elemento existente
El método Add agrega nuevos elementos al final de la colección.
El método de adición tiene cuatro parámetros.
Agregar (elemento, [Clave], [Antes], [Después])
El primer argumento es necesario. Es el objeto o que desea agregar a la colección. Los argumentos de descanso son opcionales. Veremos los usos de estos argumentos en esta sección.
Si queremos agregar algún elemento antes o después de algún índice / clave en particular, usamos los parámetros Antes y Después del método Agregar.
items.Add True, "b", "cnst" 'O items.Add True, Before: = "cnst"
Ambas líneas insertarán un valor booleano antes de la clave "cnst" en los elementos de la colección VBA.
Para insertar un elemento después de un índice / elemento / clave en particular, usamos el parámetro After del método Add.
'insertando "Mango" con la clave "m" después de los elementos de la clave "cnst". Agregue "Mango", clave: = "m", después de: = "b"
Sobre la línea se insertará "Mango" con la tecla "m" después de la tecla "b".
Nota: Las claves de los elementos deben ser únicas. No se aceptará ninguna clave que ya exista en la colección. VBA devolverá un error de que "la clave ya está asociada con un elemento de esta colección".
Podemos usar esto para nuestra ventaja para obtener una lista única de la colección.
Acceder a elementos de colección (elemento de colección)
Hay dos métodos para acceder a los elementos de una colección.
- CollectionName ("índice / clave")
- CollectionName.Item ("índice / clave")
Por ejemplo, para acceder a un miembro de una colección elementos en el índice 1 y la tecla "apl", puedo usar cualquiera de los siguientes códigos VBA.
Debug.Print items.Item (1) - Debug.Print items (1) - Debug.Print items.Item ("apl") - Debug.Print items ("apl")
¿Cómo contar los elementos de una colección? (Colección.Cuento)
Para obtener el número total de objetos o elementos en una colección, usamos la función .Count de colección. El método .Count devuelve el número total de elementos de la colección.
artículos.
La línea anterior dará el recuento de objetos que tiene la colección.
¿Cómo acceder a todos los elementos de una colección?
La única forma de acceder a todos los elementos de la colección en VBA son los bucles. Repasamos cada elemento de la colección para acceder a ellos. Para eso usamos for loop. El bucle for-each se considera la forma más rápida y limpia de acceder a los objetos de la colección.
Recorrer una colección en VBA
Hay varias formas de recorrer la colección en VBA. Usaremos más elegante para cada bucle para iterar a través de la colección.
Demasiado recorrer cada elemento de una colección, solo use esta línea de código VBA.
Para cada itm En elementos Debug.Print itm Next itm
Eliminación de elementos de una colección (Collection.Eliminar)
Para eliminar un elemento de una colección de vba, podemos usar el método Eliminar. El método de eliminación toma un argumento. Puede ser el índice o la clave del artículo (si está disponible).
items.Remove (1) 'usando index - items.Remove 1 - items.Remove ("apl")' usando la tecla - items.Remove "apl"
Eliminar colección en VBA
Bueno, no puedes eliminar una colección en vba. Sin embargo, puede eliminar todos los elementos de esa colección configurándola nuevamente como una nueva colección.
Establecer elementos = Nueva colección
Esta línea de código creará una nueva colección en la dirección de los artículos. Por lo tanto, nuestra colección se vaciará.
Matriz vs colección en VBA
Formación |
Colección |
Así que sí, chicos, esto es lo básico de las colecciones. Hay muchos beneficios y usos de la colección VBA en herramientas de oficina. Los exploraremos juntos. Hasta entonces, si tiene alguna consulta con respecto a la colección o cualquier cosa relacionada con Excel / VBA, escríbala en la sección de comentarios a continuación.