Visual Basic for Applications:
連想配列の使用
方法:
VBAでは、Dictionary
オブジェクトが連想配列に似た機能を提供します。これを使用するには、まずMicrosoft Scripting Runtimeに参照を追加する必要があります:
- VBAエディターで、ツール > 参照へ行きます…
- “Microsoft Scripting Runtime"をチェックしてOKをクリックします。
Dictionary
の宣言、追加、およびアクセス方法は以下のとおりです:
Dim sampleDictionary As Dictionary
Set sampleDictionary = New Dictionary
' アイテムの追加
sampleDictionary.Add Key:="Name", Item:="John Doe"
sampleDictionary.Add Key:="Age", Item:=29
sampleDictionary.Add Key:="Occupation", Item:="Engineer"
' アイテムのアクセス
Debug.Print sampleDictionary.Item("Name") ' 出力:John Doe
Debug.Print sampleDictionary.Item("Age") ' 出力:29
' キーが存在するか確認
If sampleDictionary.Exists("Occupation") Then
Debug.Print "Occupation Key Exists"
End If
' アイテムの削除
sampleDictionary.Remove("Occupation")
' ディクショナリーをループする
For Each Key In sampleDictionary.Keys
Debug.Print Key & ": " & sampleDictionary.Item(Key)
Next Key
ディープダイブ
Dictionary
オブジェクトは、内部でWindows Scripting Hostのコンポーネントとインターフェースします。そのため、それは遅延バインドのCOMオブジェクトであり、過去にVBAの機能を拡張する一般的な方法でした。VBAでのその使用は、伝統的な配列やExcelの範囲に見られるような厳格な構造を強制することなく、複雑なデータセットを操作する言語の能力を大幅に向上させることができます。
心に留めておくべき一つの制限は、Dictionary
にアクセスするためにはMicrosoft Scripting Runtimeへの参照の設定が必要であり、それがVBAプロジェクトの配布を複雑にする可能性があるということです。VBA内に存在するCollectionsのような代替品はありますが、エラーを引き起こすことなくキーの存在を簡単に確認できるといったDictionary
の重要な機能のいくつかを欠いています。
より最近のプログラミングの文脈では、Pythonのような言語では外部参照を追加する必要なしに連想配列(Pythonでも辞書として知られています)に対する組み込みサポートを提供しています。この組み込みサポートはプロセスを合理化し、箱から出してすぐにより高度な機能を提供します。しかし、VBAの範囲内およびMicrosoft Officeスイートのタスクを自動化する特定のアプリケーション向けには、Dictionary
オブジェクトを使用することは連想配列のようなデータ構造に対して強力で関連性のある方法であり続けます。