Blog

Postado em em 20 de agosto de 2022

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)
    0 6
  • 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:

Sub dicionarios()

Dim dict As New Dictionary

dict("Excel") = 3
dict("Power BI") = 2
dict("VBA") = 1
dict("PowerPoint") = 1

Debug.Print "Excel", dict("Excel")
Debug.Print "Power BI", dict("Power BI")
Debug.Print "VBA", dict("VBA")
Debug.Print "PowerPoint", dict("PowerPoint")

End Sub

Comentários a respeito do código acima:

  • Dimensionar:
  • 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
Sub dicionarios_exemplo2()

Dim dict As New Dictionary
Dim matriz As Variant

matriz = Sheets("Tabela").Range("A1").CurrentRegion.Value

For i = LBound(matriz) + 1 To UBound(matriz)
   dict(matriz(i, 2)) = dict(matriz(i, 2)) + matriz(i, 3)
Next

For Each chave In dict
   Debug.Print chave, dict(chave)
Next

End Sub

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:
    3 3
  • 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:

4 3

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?

Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador