Dicionário VBA - Guia para trabalhar com dicionários VBA do Excel

Dicionário Excel VBA

Usando o VBA Dictionary, podemos agrupar todos os tipos de dados em um dicionário para obter acesso a todos os itens com uma única variável. Podemos usar o dicionário para criar uma coleção de combinações de valores-chave. Uma vez que o objeto está vinculado às chaves, mais tarde, podemos chamá-los usando apenas o nome da chave.

O Dicionário VBA é muito difícil de entender, mas tentaremos nosso melhor nível para torná-lo fácil de entender. Podemos comparar Dicionário e Coleção na mesma escala, mas alguns dos dicionários VBA oferecem algumas das funcionalidades que não estão disponíveis com o objeto Coleções VBA.

Trabalhando com Dicionários VBA

Para trabalhar com VBA Dictionaries, a primeira coisa que precisamos fazer é definir a referência do objeto como 'Microsoft Scripting Runtime'.

Para definir a referência, siga as etapas abaixo.

Etapa 1: Vá para Ferramentas> Referências.

Etapa 2: Role para baixo e selecione a opção 'Microsoft Scripting Runtime' e clique em ok.

Agora podemos acessar o dicionário VBA com a biblioteca de scripts.

Criar instância de dicionário com código VBA

Depois de definir a referência como 'Microsoft Scripting Runtime', precisamos criar uma instância do Dicionário VBA. Primeiro, declare a variável como Scripting.Dictionary.

Código:

Sub Dict_Example1 () Dim Dict As Scripting.Dictionary End Sub

Agora a variável “Dict” é uma variável de objeto. Para a variável de objeto, precisamos definir a referência do objeto usando a palavra “Novo”.

Set Dict = New Scripting.Dictionary

Agora podemos acessar todas as propriedades e métodos do dicionário.

Nota: Todas as palavras com botões verdes são Métodos e outras são Propriedades.

Agora declare uma variável como DictResult.

Dim DictResult As Variant

Agora usando a variável “Dict”, vamos criar uma nova chave.

A chave é a palavra que estamos adicionando. Vamos adicionar o nome do telefone móvel como “Redmi”.

Item nada mais é do que a definição da palavra ( chave ) que adicionamos. Esta definição do telefone é o seu preço, então adicionarei o preço a 15.000.

Agora, para outra variável, “DictResult”, adicionaremos uma palavra-chave usando a variável “Dict”.

A chave é a palavra que criamos na etapa anterior, ou seja, o nome do telefone.

Agora a variável “DictResult” possui o item da chave que adicionamos. Agora mostre o resultado da variável na caixa de mensagem do VBA.

Código:

Sub Dict_Example1 () Dim Dict As Scripting.Dictionary Set Dict = Novo Scripting.Dictionary Dim DictResult As Variant Dict.Add Key: = "Redmi", Item: = 15000 DictResult = Dict ("Redmi") MsgBox DictResult End Sub

Agora execute o código manualmente ou usando a tecla F5, e uma caixa de mensagem mostrará o preço ( item ) do telefone ( chave ) que adicionamos usando “Dict”.

Compreendendo a CHAVE e ITEM

Se você não entendeu KEY & ITEM, deixe-me explicar com um exemplo simples. Imagine um dicionário do mundo real. Com este dicionário, temos palavras (chaves) e o significado dessas palavras (item). Da mesma forma, as palavras são Chaves e a definição ou significado é o Item.

Agora, veja mais um exemplo de Dicionário. Suponha que você esteja procurando o número de telefone de uma pessoa específica. Como você pesquisa?

Obviamente, ao usar o nome, usamos enquanto salvamos o número de telefone. Aqui temos duas coisas, uma é o nome da pessoa e a segunda é o número de telefone.

O nome da pessoa é a chave.

O número de telefone é um item.

Se você quiser o exemplo do Excel, podemos dar VLOOKUP como exemplo. Usamos a fórmula para procurar valores com base no VALOR DE PROCURA (Chave). O resultado retornado pela função VLOOKUP é denominado Item.

Verifique se o celular está lá ou não.

Imagine que você está dando um formulário de usuário para que seus clientes verifiquem o preço do celular com uma simples caixa de entrada. Abaixo, o código VBA do Excel apresentará uma caixa de entrada na frente do usuário, e ele precisará inserir a marca do telefone que está procurando. Se o nome da marca constar no dicionário, mostrará o preço do respectivo telefone, ou então exibirá a mensagem “O telefone que você está procurando não existe na biblioteca”.

Código:

Sub Dict_Example2 () Dim PhoneDict As Scripting.Dictionary Dim DictResult As Variant Set PhoneDict = Novo Scripting.Dictionary PhoneDict.Add Key: = "Redmi", Item: = 15000 PhoneDict.Add Key: = "Samsung", Item: = 25000 PhoneDict .Add Key: = "Oppo", Item: = 20000 PhoneDict.Add Key: = "VIVO", Item: = 21000 PhoneDict.Add Key: = "Jio", Item: = 2500 DictResult = Application.InputBox (Prompt: = "Insira o nome do telefone") If PhoneDict.Exists (DictResult) Then MsgBox "O preço do telefone" & DictResult & "é:" & PhoneDict (DictResult) Else MsgBox "Telefone que você está procurando Não existe no Biblioteca "End If End Sub

Execute este código usando a tecla F5 ou manualmente e veja o resultado.

Artigos interessantes...