Visual Basic for Applications:
Usando arrays associativos
Como:
No VBA, o objeto Dictionary
oferece funcionalidade similar a arrays associativos. Primeiro, você deve adicionar uma referência ao Tempo de Execução de Script da Microsoft para usá-lo:
- No editor do VBA, vá para Ferramentas > Referências…
- Marque “Microsoft Scripting Runtime” e clique em OK.
Aqui está como declarar, popular e acessar itens em um Dictionary
:
Dim sampleDictionary As Dictionary
Set sampleDictionary = New Dictionary
' Adicionando itens
sampleDictionary.Add Key:="Name", Item:="John Doe"
sampleDictionary.Add Key:="Age", Item:=29
sampleDictionary.Add Key:="Occupation", Item:="Engineer"
' Acessando itens
Debug.Print sampleDictionary.Item("Name") ' Saída: John Doe
Debug.Print sampleDictionary.Item("Age") ' Saída: 29
' Verificando se uma chave existe
If sampleDictionary.Exists("Occupation") Then
Debug.Print "Chave de Occupation Existe"
End If
' Removendo itens
sampleDictionary.Remove("Occupation")
' Percorrendo o dicionário
For Each Key In sampleDictionary.Keys
Debug.Print Key & ": " & sampleDictionary.Item(Key)
Next Key
Aprofundamento
O objeto Dictionary
opera por baixo dos panos com componentes do Windows Scripting Host. Assim sendo, é um objeto COM de vínculo tardio, que era uma maneira comum de estender a funcionalidade do VBA no passado. Seu uso no VBA pode aumentar significativamente a capacidade da linguagem de manipular conjuntos de dados complexos sem impor uma estrutura rígida, como visto em arrays tradicionais ou intervalos do Excel.
Uma limitação a ter em mente é que acessar o Dictionary
requer a configuração de uma referência ao Tempo de Execução de Script da Microsoft, o que pode complicar a distribuição de seus projetos VBA. Alternativas como Collections existem dentro do VBA, mas carecem de algumas das principais funcionalidades do Dictionary
, como a capacidade de verificar facilmente a existência de uma chave sem disparar um erro.
Em contextos de programação mais recentes, linguagens como Python oferecem suporte integrado para arrays associativos (conhecidos como dicionários em Python também) sem a necessidade de adicionar referências externas. Este suporte integrado simplifica o processo e oferece funcionalidades mais avançadas de forma imediata. No entanto, dentro dos limites do VBA e para aplicações específicas voltadas para a automação de tarefas na suíte Microsoft Office, usar o objeto Dictionary
continua sendo um método poderoso e relevante para estruturas de dados do tipo array associativo.