プロジェクトでVBAを書いていて,処理のロジック上,どうしても連想配列を使いたいなーと思いつつ,これまで使ったことがないので,VBAでは連想配列は使えないと思い込んでた.半ば諦めながらググってみたところ「Scripting.Dictionary」という型で連想配列が使えることがわかり感動!VBAの奥深さを改めて感じた1日だった.
適当に書いてみたサンプルコード.
Sub DictionarySample() 'Dictionary型でオブジェクトを生成する '(参照設定で"Microsoft Scripting Runtime"が有効になってる前提) Dim HostIPMapping As Scripting.Dictionary Set HostIPMapping = New Scripting.Dictionary 'ホスト名をキーとした連想配列としてIPアドレスを格納する HostIPMapping.Add "hostname1", "127.0.0.1" HostIPMapping.Add "hostname2", "127.0.0.2" HostIPMapping.Add "hostname3", "127.0.0.3" '連想配列の全ての要素を出力する For Each tmpHost In HostIPMapping Debug.Print tmpHost & " | " & HostIPMapping.Item(tmpHost) Next End Sub
イミディエイトウィンドウの標準出力結果.
hostname1 | 127.0.0.1
hostname2 | 127.0.0.2
hostname3 | 127.0.0.3