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)
- 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á.
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:
- a variável “dict” como um novo dicionário
- Para entender melhor sobre os tipos de dados no VBA, visite esse link oficial
- 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:
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 variável “dict” como um novo dicionário
- a variável “matriz” sendo do tipo Variant
- Para entender melhor sobre os tipos de dados no VBA, visite esse link oficial
- 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:
- 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:
Conclusão – Como Usar Dicionários no VBA
Nessa aula você lidou com os seguintes conceitos:
- Ambiente do VBA
- Tipos de dados no VBA
- Declaração de variáveis no VBA
- Matrizes em VBA
- Estrutura de repetição do tipo For
- Estrutura de repetição do tipo For Each
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!
Expert em VBA e Power BI da Hashtag Treinamentos. Auxilia no suporte aos alunos da Hashtag Treinamentos e na criação de conteúdos para os que acompanham nossos canais.