辞書 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 DictionarySet 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) が設定されます。このため、出力は空になります。 - プログラムの一時停止:
StopStopステートメントを使ってプログラムを一時停止します。これにより、実行中のコードをデバッグモードで調べることができます。以下が一時停止時のローカルウィンドウです。

コード全体の動作まとめ
Dictionaryオブジェクトを作成し、キー"m01"に値"Bob"を追加します。m01の値を出力すると、"Bob"が表示されます。- 存在しないキー
"m02"を参照しようとすると、自動的にキーが作成され、空の値が設定されます。そのため、出力は空となります。 - 最後に、プログラムを一時停止して、デバッグモードでコードを調査できます。
このコードは、Dictionaryオブジェクトで存在しないキーを参照したときの動作を確認するためのものです。VBAのDictionaryオブジェクトは、存在しないキーを参照した場合に自動的にそのキーを追加する特性があります。

