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.

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.
