辞書 Dictionary、Keys メソッドと Items メソッドを使用したループ処理
このコードは、VBA (Visual Basic for Applications) において Dictionary
オブジェクトを使用し、Keys
メソッドと Items
メソッドを利用して辞書のキーと値をループ処理する方法を示しています。
' 辞書 Dictionary、Keys メソッドと Items メソッドを使用したループ処理
Private Sub Dictionary_ForEach_Keys_Items()
Dim members As Dictionary
Set members = New Dictionary
With members
.Add "m01", "Bob"
.Add "m02", "Tom"
.Add "m03", "Ivy"
Dim i As Long
Dim myItems As Variant
myItems = .Items
For i = LBound(myItems) To UBound(myItems)
Debug.Print i, myItems(i)
Next i
Dim myKeys As Variant
myKeys = .Keys
For i = LBound(myKeys) To UBound(myKeys)
Debug.Print i, myKeys(i), .Item(myKeys(i))
Next i
End With
End Sub
1. 辞書 (Dictionary
) の生成と初期化
Dim members As Dictionary
Set members = New Dictionary
- まず、
Dictionary
型のオブジェクトmembers
を作成し、新しいDictionary
をSet
で初期化しています。Dictionary
はキーと値のペアを格納するコレクションです。
2. 辞書へのキーと値の追加
With members
.Add "m01", "Bob"
.Add "m02", "Tom"
.Add "m03", "Ivy"
With
ステートメントを使って、members
辞書にキー"m01"
,"m02"
,"m03"
を追加し、それぞれに"Bob"
,"Tom"
,"Ivy"
の値を設定しています。
3. Items
メソッドによる値のループ処理
Dim i As Long
Dim myItems As Variant
myItems = .Items
For i = LBound(myItems) To UBound(myItems)
Debug.Print i, myItems(i)
Next i
.Items
メソッドは、辞書内のすべての値を配列として返します。LBound
とUBound
を使用して、配列myItems
の最初の要素から最後の要素までループし、それぞれの値をDebug.Print
で出力します。
4. Keys
メソッドによるキーのループ処理とそのキーに対応する値の取得
Dim myKeys As Variant
myKeys = .Keys
For i = LBound(myKeys) To UBound(myKeys)
Debug.Print i, myKeys(i), .Item(myKeys(i))
Next i
.Keys
メソッドは、辞書内のすべてのキーを配列として返します。LBound
とUBound
を使用して、配列myKeys
の最初の要素から最後の要素までループします。- ループの中で、各キーとそのキーに対応する値を
Debug.Print
で出力します。
具体的には、次のような出力がされます。
Debug.Print i, myKeys(i), .Item(myKeys(i))
この行では、i
は配列内のインデックス番号、myKeys(i)
はそのインデックスに対応するキー、.Item(myKeys(i))
はそのキーに対応する値を意味します。
全体の流れ
- 辞書の作成:
Dictionary
オブジェクトmembers
を作成し、キーと値のペアを追加します。 - 値の取得 (
Items
): 辞書内の全ての値を配列として取得し、その値をループして表示します。 - キーの取得 (
Keys
): 辞書内の全てのキーを配列として取得し、そのキーと対応する値をループして表示します。
イミディエイトウィンドウ
0 Bob
1 Tom
2 Ivy
0 m01 Bob
1 m02 Tom
2 m03 Ivy
まとめ
このコードは、Dictionary
オブジェクトを利用して、キーと値のペアを管理し、それらをループ処理して出力する方法を示しています。Items
メソッドと Keys
メソッドを組み合わせて、辞書の中身を効率的に操作することができます。