Dicionário VBA

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 nós 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 no objeto Coleções do 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.

Você pode baixar este modelo de dicionário VBA aqui - modelo de dicionário VBA em Excel

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

Depois de definir a referência para '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” iremos criar uma nova chave.

Chave é a palavra que estamos adicionando. Vamos adicionar o nome do celular 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 a palavra-chave usando a variável “Dict”.

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 o 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, usando o nome que 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 precisa inserir a marca do telefone que está procurando, se a marca estiver no dicionário irá mostrar o preço do respectivo telefone ou então irá exibir a mensagem como “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: = "Digite 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.