Como Usar Dicionários no VBA – Aprenda em uma Única Aula

Quer aprender como usar dicionários no VBA em apenas uma aula? Então vem comigo que eu vou te mostrar como!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Fala, Impressionadores! Na aula de hoje eu vou te mostrar como usar dicionários no VBA!

Vou te mostrar o que é dicionário no VBA, como inserir valores no dicionário, como trazer as informações do dicionário.

Você vai notar que o dicionário se assemelha as matrizes no VBA, então vamos ter linhas e colunas, só que temos o nome de chaves e valores no dicionário.

Isso facilita um pouco na hora de fazer a busca de certas informações dessas variáveis complexas, que diferenciam um pouco das variáveis no VBA.

Outro ponto interessante que vou te mostrar nessa aula é o comando debug.print que é para visualizar o resultado das variáveis sem que você tenha que colocá-las dentro do Excel.

Vai poder visualizar dentro do próprio VBA para ter mais praticidade! E aí, bora aprender sobre dicionários?

Ativando referências no VBA

Precisaremos utilizar uma biblioteca específica do Excel/VBA para nos auxiliar na aula de hoje. Portanto, precisaremos ativá-la para fazer esses procedimentos a seguir.

Precisamos primeiramente abrir o ambiente de VBA, a partir do atalho do teclado Alt(+Fn)+F11.

Logo após você terá, com o VBA aberto, que:

  • Ir na guia Ferramentas
  • Referências…
  • Marcar a caixinha correspondente ao “Microsoft Scripting Runtime” (como na foto abaixo)
    Como Usar Dicionários no VBA
  • OK

Inserindo um Módulo no VBA

Para criar um código dentro de um módulo, precisamos primeiramente abrir o ambiente de VBA, a partir do atalho do teclado Alt(+Fn)+F11.

Como não temos nenhum módulo destinado ao tema da aula de hoje, e por questão de organização, vamos criar um módulo à parte.

Vamos na guia Inserir > Módulo, e uma caixa branca se abrirá.

Como Usar Dicionários no VBA

Por padrão ele terá o nome de “Módulo 1”. Colocaremos as seguintes sub dentro dele:

VBA
<strong>Sub dicionarios()</strong><br><br><strong>Dim dict As New Dictionary</strong><br><br><strong>dict("Excel") = 3</strong><br><strong>dict("Power BI") = 2</strong><br><strong>dict("VBA") = 1</strong><br><strong>dict("PowerPoint") = 1</strong><br><br><strong>Debug.Print "Excel", dict("Excel")</strong><br><strong>Debug.Print "Power BI", dict("Power BI")</strong><br><strong>Debug.Print "VBA", dict("VBA")</strong><br><strong>Debug.Print "PowerPoint", dict("PowerPoint")</strong><br><br><strong>End Sub</strong>

Comentários a respeito do código acima:

  • Dimensionar:
    Ícone VBAVBA Impressionador

    Como automatizar praticamente qualquer tarefa repetitiva que você faça dentro do Excel. Aprenda a criar integrações do Excel com o PowerPoint, Word, Outlook e muito mais. Aprenda a criar automações para resolver tudo com apenas um clique em um botão. Tudo isso com uma única linguagem que junta todos esses programas.

    Começar agoraSeta para a direita
    Fundo VBATelas VBA
  • Definir os membros do dicionário como:
    • a correspondência de dicionário para o texto “Excel” é o número 3
    • a correspondência de dicionário para o texto “Power BI” é o número 2
    • a correspondência de dicionário para o texto “VBA” é o número 1
    • a correspondência de dicionário para o texto “PowerPoint” é o número 1
  • Mostra o texto “Excel”, e o correspondente no dicionário “dict” para o texto “Excel”, que será o número 3. No caso, vai ficar impresso algo como “Excel”, 3
  • Mostra o texto “Power BI”, e o correspondente no dicionário “dict” para o texto “Power BI”, que será o número 3. No caso, vai ficar impresso algo como “Power BI”, 2
  • Mostra o texto “VBA”, e o correspondente no dicionário “dict” para o texto “VBA”, que será o número 3. No caso, vai ficar impresso algo como “VBA”, 1
  • Mostra o texto “PowerPoint”, e o correspondente no dicionário “dict” para o texto “PowerPoint”, que será o número 3. No caso, vai ficar impresso algo como “PowerPoint”, 1
  • Se encerra o código

Rodando o código acima, você terá na Janela Imediata, algo como:

Como Usar Dicionários no VBA
VBA
<strong>Sub dicionarios_exemplo2()</strong><br><br><strong>Dim dict As New Dictionary</strong><br><strong>Dim matriz As Variant</strong><br><br><strong>matriz = Sheets("Tabela").Range("A1").CurrentRegion.Value</strong><br><br><strong>For i = LBound(matriz) + 1 To UBound(matriz)</strong><br><strong>    dict(matriz(i, 2)) = dict(matriz(i, 2)) + matriz(i, 3)</strong><br><strong>Next</strong><br><br><strong>For Each chave In dict</strong><br><strong>    Debug.Print chave, dict(chave)</strong><br><strong>Next</strong><br><br><strong>End Sub</strong>

Comentários a respeito do código acima:

  • Dimensionar:
  • A matriz vai receber os valores presentes na região preenchida nas células a partir de A1, da aba “Tabela”. Isso significa assumir os valores da seguinte região:
    Como Usar Dicionários no VBA
  • Utilizar de uma estrutura de repetição do tipo For, que vai, do menor valor de índice da matriz (primeiro termo) + 1 (porque o primeiro termo é 0), até o maior valor de índice da matriz (último termo), representadas pela variável “i” que muda a cada volta, fazendo as seguintes ações:
    • associar o que ela já tinha anteriormente (1º item da soma) somado com o que ela tem (2º item da soma) naquela linha específica (i) ao item de valor que está na célula da linha “i”, e da coluna 2 (B) da planilha (os códigos (textos) linha a linha da coluna B). Fará, com isso, uma soma acumulada por código
  • Utilizar de uma estrutura de repetição do tipo For Each, que vai percorrer todas as chaves (representadas pela variável “chave” a cada volta) do dicionário em questão (representado pela variável “dict”). Ao percorrer, fará a seguintes ações:
    • Mostra o texto correspondente à “chave” naquela volta, e o correspondente no dicionário “dict” para aquela “chave” específica
  • Se encerra o código

Rodando o código acima, você terá na Janela Imediata, algo como:

Como Usar Dicionários no VBA

Conclusão – Como Usar Dicionários no VBA

Nessa aula você lidou com os seguintes conceitos:

Até o próximo post! Fique ligado no nosso canal do Youtube para mais conteúdo de VBA! Um abraço!

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um minicurso básico gratuito?