Colección VBA - ¿Cómo crear un objeto de colección en VBA?

Objeto de colección de Excel VBA

En la codificación VBA, además de la colección existente de elementos en un grupo, podemos crear nuestros grupos de colección. En nuestros muchos artículos, hemos hablado sobre las variables de objeto, y en este tutorial, analizaremos el objeto de colección de VBA en detalle.

Si ha leído nuestro artículo anterior "Arreglos VBA", esto le resultará mucho más fácil de entender. Las matrices se utilizan para agrupar variables bajo un mismo techo; De manera similar, Collection también se usa para almacenar un grupo de variables.

Las colecciones se utilizan para almacenar objetos. Son mucho más flexibles que las matrices VBA, mientras que las matrices tienen límites de tamaño fijos, pero los lectores no tienen ningún límite de tamaño fijo en un momento dado e incluso no requieren un cambio de tamaño manual.

La colección VBA es muy similar al "Diccionario VBA", pero el diccionario requiere que se configure una referencia de objeto externo en la ventana de referencia de objeto. Con el diccionario VBA, necesitamos establecer el tipo de referencia como “Microsoft Scripting Runtime”, pero Collection no requiere ajustes adicionales.

¿Cómo crear un objeto de colección en VBA?

Para comenzar con la colección primero, debemos declarar la variable como "Colección".

Código:

Sub Collection_Example () Dim Col As Collection End Sub

Dado que la colección es una variable de objeto, necesitamos establecer la referencia del objeto creando una nueva instancia.

Código:

Sub Collection_Example () Dim Col As Collection Set Col = Nueva colección End Sub

Ahora con la variable, podemos acceder a todos los métodos de la variable de colección "Col."

Código:

Sub Collection_Example () Dim Col As Collection Set Col = Nueva colección Col. End Sub

Antes de hacer uso de estos métodos, debemos declarar una variable como una cadena.

Código:

Sub Collection_Example () Dim Col As Collection Set Col = Nueva colección Dim ColResult As String End Sub

Ahora use la variable "Col" para elegir el método "Agregar".

Código:

Sub Collection_Example () Dim Col As Collection Set Col = Nueva colección Col.Añadir End Sub

Bajo el método Add, tenemos parámetros específicos. Supongamos que estamos almacenando marcas de móviles con su precio de venta medio en el mercado.

En Item, el argumento ingresa el precio del móvil.

Código:

Sub Collection_Example () Dim Col As Collection Set Col = Nueva colección Col.Añadir artículo: = 15000, End Sub

A continuación, en Argumento clave , ingrese el nombre de la marca móvil.

Código:

Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Añadir artículo: = 15000, Clave: = "Redmi" End Sub

Para la variable "ColResult", almacenaremos el resultado de la variable de objeto "Col".

Código:

Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Añadir artículo: = 15000, Clave: = "Redmi" ColResult = Col (End Sub

Cuando abre el paréntesis de la variable "Col", podemos ver el argumento como Índice. Para este argumento, necesitamos proporcionar el valor del argumento crítico del método de adición de Colección, es decir, el nombre de la marca móvil.

Código:

Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") End Sub

Ahora muestre el resultado en el cuadro de mensaje en VBA.

Código:

Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult End Sub

Ok, terminamos cuando ejecutamos el código. Deberíamos ver el precio de la marca móvil "Redmi".

Mejor comprensión de los parámetros clave y de los elementos

Estoy seguro de que no es fácil comprender los parámetros del objeto Collection. Déjame explicarte un ejemplo sencillo.

Imagina que tienes un menú de frutas con su nombre y precio de las frutas. Suponga que busca el precio de la fruta "Apple" por el nombre de la fruta.

To search the price of the fruit, we need to mention the name of the fruit, i.e., in collection VBA language Name of the Fruit is Key, and the price of the fruit is “Item.”

It is like applying the VLOOKUP or HLOOKUP function, based on the lookup value, and we will fetch the required data from the database. Here lookup value is Key, and the result is Item.

Advanced Example

Imagine you are a store manager in one of the retail stores, and you are responsible for managing the customer queries. One such customer query is an inquiry about the product price.

It would help if you allowed the customer to search the price of the product with complete information. Similarly, you need to show the message in case of no data found. Below is the example code which will present the input box in front of the user. They require to enter the name of the product they are looking for. If the product is there in the collection, it will show the price of the mentioned product, or else it will show the message as “The Product you are searching for doesn’t exist.”

Code:

Sub Collection_Example2 () Dim ItemsCol As Collection Dim ColResult As String Set ItemsCol = New Collection ItemsCol.Add Key: = "Apple", Item: = 150 ItemsCol.Add Key: = "Orange", Item: = 75 ItemsCol.Add Key: = "Melón de agua", Item: = 45 ItemsCol.Add Key: = "Mush Millan", Item: = 85 ItemsCol.Add Key: = "Mango", Item: = 65 ColResult = Application.InputBox (Prompt: = "Por favor Ingrese el nombre de la fruta ") Si ItemsCol (ColResult)" "Entonces MsgBox" El precio de la fruta "& ColResult &" es: "& ItemsCol (ColResult) Else MsgBox" El precio de la fruta que está buscando no existe en la colección "End If End Sub

Articulos interesantes...