辞書 Dictionary で存在しないキーを参照
このコードは、VBAでDictionary
オブジェクトを使用して、存在しないキーを参照した場合にどのような動作になるかを示しています。
' 辞書 Dictionary で存在しないキーを参照
Private Sub Dictionary_members()
Dim members As Dictionary
Set members = New Dictionary
members("m01") = "Bob"
Debug.Print members("m01") ' Bob
Debug.Print members("m02") '
Stop
End Sub
コードの概要
Dictionary_members
というサブプロシージャは、Dictionary
オブジェクトを生成し、データを格納したり、存在しないキーを参照する操作を行っています。
コードの詳細
Dictionary
オブジェクトの生成:Dim members As Dictionary
Set members = New Dictionary
まず、Dictionary
オブジェクトのインスタンスを生成し、members
という変数にセットします。- データの追加と参照:
members("m01") = "Bob"
Debug.Print members("m01") ' Bob
キー"m01"
に値"Bob"
を追加し、その値を出力します。ここでは、"Bob"
が出力されます。 - 存在しないキーの参照:
Debug.Print members("m02") '
次に、キー"m02"
に対応する値を参照しようとしていますが、このキーはまだDictionary
に追加されていません。この場合、通常はエラーが発生しますが、VBAのDictionary
オブジェクトでは、存在しないキーを参照しようとすると、自動的にそのキーが追加され、デフォルトの空の値 (Empty
) が設定されます。このため、出力は空になります。 - プログラムの一時停止:
Stop
Stop
ステートメントを使ってプログラムを一時停止します。これにより、実行中のコードをデバッグモードで調べることができます。以下が一時停止時のローカルウィンドウです。
コード全体の動作まとめ
Dictionary
オブジェクトを作成し、キー"m01"
に値"Bob"
を追加します。m01
の値を出力すると、"Bob"
が表示されます。- 存在しないキー
"m02"
を参照しようとすると、自動的にキーが作成され、空の値が設定されます。そのため、出力は空となります。 - 最後に、プログラムを一時停止して、デバッグモードでコードを調査できます。
このコードは、Dictionary
オブジェクトで存在しないキーを参照したときの動作を確認するためのものです。VBAのDictionary
オブジェクトは、存在しないキーを参照した場合に自動的にそのキーを追加する特性があります。