Dictionary 全件取得
Dictionaryを使うときに「登録されている全件をまとめて取り出したい」場面があります。例えば「全キー一覧を出力」「全値一覧を出力」「キーと値のペアを表に展開」などです。初心者向けに、コード例やテンプレートをかみ砕いて説明します。
基本の考え方
- Keysプロパティ → 全キーを配列で取得できる。
- Itemsプロパティ → 全値を配列で取得できる。
- Countプロパティ → 登録件数を取得できる。
- For Eachループ → 全件を順番に処理できる。
テンプレ1:全キーを取得して出力
Sub Dict_GetAllKeys()
Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary")
dict.Add "A001", "りんご"
dict.Add "A002", "みかん"
dict.Add "A003", "バナナ"
Dim k As Variant
For Each k In dict.Keys
Debug.Print "キー=" & k
Next k
End Sub
VB- 結果:
キー=A001 キー=A002 キー=A003
テンプレ2:全値を取得して出力
Sub Dict_GetAllItems()
Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary")
dict.Add "A001", "りんご"
dict.Add "A002", "みかん"
dict.Add "A003", "バナナ"
Dim v As Variant
For Each v In dict.Items
Debug.Print "値=" & v
Next v
End Sub
VB- 結果:
値=りんご 値=みかん 値=バナナ
テンプレ3:キーと値をペアで全件取得
Sub Dict_GetAllPairs()
Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary")
dict.Add "C001", "東京"
dict.Add "C002", "大阪"
dict.Add "C003", "名古屋"
Dim k As Variant
For Each k In dict.Keys
Debug.Print "キー=" & k, "値=" & dict(k)
Next k
End Sub
VB- 結果:
キー=C001 値=東京 キー=C002 値=大阪 キー=C003 値=名古屋
テンプレ4:全件をシートに展開
Sub Dict_OutputToSheet()
Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary")
dict.Add "P001", "商品A"
dict.Add "P002", "商品B"
dict.Add "P003", "商品C"
Dim ws As Worksheet: Set ws = Worksheets("Data")
Dim i As Long: i = 1
Dim k As Variant
For Each k In dict.Keys
ws.Cells(i, 1).Value = k
ws.Cells(i, 2).Value = dict(k)
i = i + 1
Next k
End Sub
VB- ポイント:
- A列にキー、B列に値を出力。
- 全件を表形式で展開できる。
テンプレ5:Keys/Itemsを配列としてまとめて扱う
Sub Dict_KeysItemsArray()
Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary")
dict.Add "X001", "Apple"
dict.Add "X002", "Orange"
dict.Add "X003", "Banana"
Dim keysArr As Variant: keysArr = dict.Keys
Dim itemsArr As Variant: itemsArr = dict.Items
Dim i As Long
For i = LBound(keysArr) To UBound(keysArr)
Debug.Print keysArr(i), itemsArr(i)
Next i
End Sub
VB- ポイント:
- KeysとItemsは配列なので、インデックスで対応関係を確認できる。
例題で練習
'例1:全キーを取得
Sub Example1()
Dict_GetAllKeys
End Sub
'例2:全値を取得
Sub Example2()
Dict_GetAllItems
End Sub
'例3:キーと値をペアで取得
Sub Example3()
Dict_GetAllPairs
End Sub
'例4:全件をシートに展開
Sub Example4()
Dict_OutputToSheet
End Sub
'例5:Keys/Itemsを配列で扱う
Sub Example5()
Dict_KeysItemsArray
End Sub
VB初心者向けポイント
- Keysで全キー一覧、Itemsで全値一覧 → 配列として扱える。
- For Eachループで全件処理 → キーと値をペアで出力可能。
- シート展開も簡単 → 表形式にすれば見やすい。
- Countで件数確認 →
dict.Countで登録件数がわかる。 - 大量データでも高速 → 数万件でも一瞬で全件取得できる。
👉 この「全件取得テンプレ」を覚えておけば、Dictionaryに登録したデータを 一覧表示・表展開・配列処理 まで自在に扱えるようになります。
