辞書 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オブジェクトを生成し、データを格納したり、存在しないキーを参照する操作を行っています。

コードの詳細

  1. Dictionaryオブジェクトの生成:
    Dim members As Dictionary
    Set members = New Dictionary
    まず、Dictionaryオブジェクトのインスタンスを生成し、membersという変数にセットします。
  2. データの追加と参照:
    members("m01") = "Bob"
    Debug.Print members("m01") ' Bob
    キー"m01"に値"Bob"を追加し、その値を出力します。ここでは、"Bob"が出力されます。
  3. 存在しないキーの参照:
    Debug.Print members("m02") '
    次に、キー"m02"に対応する値を参照しようとしていますが、このキーはまだDictionaryに追加されていません。この場合、通常はエラーが発生しますが、VBAのDictionaryオブジェクトでは、存在しないキーを参照しようとすると、自動的にそのキーが追加され、デフォルトの空の値 (Empty) が設定されます。このため、出力は空になります。
  4. プログラムの一時停止:Stop
    Stopステートメントを使ってプログラムを一時停止します。これにより、実行中のコードをデバッグモードで調べることができます。以下が一時停止時のローカルウィンドウです。

コード全体の動作まとめ

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

このコードは、Dictionaryオブジェクトで存在しないキーを参照したときの動作を確認するためのものです。VBAのDictionaryオブジェクトは、存在しないキーを参照した場合に自動的にそのキーを追加する特性があります。

Follow me!