Coleção VBA - Como criar um objeto de coleção no VBA?

Objeto de coleção Excel VBA

Na codificação VBA, além da coleção existente de itens em um grupo, podemos criar nossos grupos de coleção. Em nossos muitos artigos, falamos sobre variáveis ​​de objeto e, neste tutorial, examinaremos o objeto de coleção VBA em detalhes.

Se você leu nosso artigo anterior “Arrays VBA”, isso será muito mais fácil de entender. Arrays são usados ​​para agrupar variáveis ​​sob o mesmo teto; da mesma forma, Collection também é usada para armazenar um grupo de variáveis.

Coleções são usadas para armazenar objetos. Eles são muito mais flexíveis do que os arrays VBA, enquanto os arrays têm limites de tamanho fixo, mas os leitores não têm nenhum limite de tamanho fixo em um determinado momento e nem mesmo exigem redimensionamento manual.

A coleção VBA é muito semelhante ao “Dicionário VBA”, mas o dicionário requer uma referência de objeto externo para ser configurada na janela de referência de objeto. Com o VBA Dictionary, precisamos definir o tipo de referência como “Microsoft Scripting Runtime”, mas a coleção não requer nenhum ajuste extra.

Como criar um objeto de coleção no VBA?

Para começar com a coleção primeiro, precisamos declarar a variável como “Coleção”.

Código:

Sub Coleção_Exemplo () Dim Col As Coleção End Sub

Como a coleção é uma variável de objeto, precisamos definir a referência do objeto criando uma nova instância.

Código:

Sub Collection_Example () Dim Col As Collection Set Col = New Collection End Sub

Agora com a variável, podemos acessar todos os métodos da variável de coleção “Col.”

Código:

Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col. End Sub

Antes de usar esses métodos, precisamos declarar uma variável como uma string.

Código:

Sub Collection_Example () Dim Col As Collection Set Col = Nova coleção Dim ColResult As String End Sub

Agora use a variável “Col” para escolher o método “Adicionar”.

Código:

Sub Collection_Example () Dim Col As Collection Set Col = Nova coleção Col.Add End Sub

No método Add, temos parâmetros específicos. Vamos supor que estejamos armazenando nomes de marcas de celular com seu preço médio de venda no mercado.

Em Item, o argumento insere o preço do celular.

Código:

Sub Coleção_Exemplo () Dim Col Como Conjunto de Coleção Col = Nova Coleção Col.Adicionar Item: = 15000, End Sub

Em seguida, em Argumento principal , insira o nome da marca do celular

Código:

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

Para a variável “ColResult”, armazenaremos o resultado da variável de objeto “Col”.

Código:

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

Quando você abre o parêntese da variável “Col”, podemos ver o argumento como Índice. Para este argumento, precisamos fornecer o valor do argumento crítico do método Collection add, ou seja, o nome da marca móvel.

Código:

Sub Collection_Example () Dim Col As Collection Set Col = Nova Coleção Col.Add Item: = 15000, Chave: = "Redmi" ColResult = Col ("Redmi") End Sub

Agora vamos mostrar o resultado na caixa de mensagem em VBA.

Código:

Sub Collection_Example () Dim Col As Collection Set Col = Nova Coleção Col.Add Item: = 15000, Chave: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult End Sub

Ok, terminamos quando executamos o código. Devemos ver o preço da marca de celular, “Redmi”.

Melhor compreensão dos parâmetros chave e de item

Tenho certeza de que não é fácil entender os parâmetros do objeto Collection. Deixe-me explicar a você um exemplo simples.

Imagine que você tem um cardápio de frutas com o nome e preço das frutas. Suponha que você esteja pesquisando o preço da fruta “Maçã” pelo nome da 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 Definir ItemsCol = Nova coleção ItemsCol.Add Key: = "Apple", Item: = 150 ItemsCol.Add Key: = "Orange", Item: = 75 ItemsCol.Add Key: = "Water Melon", Item: = 45 ItemsCol.Add Key: = "Mush Millan", Item: = 85 ItemsCol.Add Key: = "Mango", Item: = 65 ColResult = Application.InputBox (Prompt: = "Por favor Digite o nome da fruta ") If ItemsCol (ColResult)" "Then MsgBox" O preço da fruta "& ColResult &" é: "& ItemsCol (ColResult) Else MsgBox" Preço da fruta que você está procurando Não existe em a coleção "End If End Sub

Artigos interessantes...