Excel VBA 逆引き集 | Items・Keys

Excel VBA
スポンサーリンク

Dictionary の Items・Keys

Excel VBAで Dictionary を使うときに便利なのが、
Keysプロパティ(全キー一覧)と Itemsプロパティ(全値一覧)です。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。


基本の考え方

  • Keys → 登録されているキーを配列で返す。
  • Items → 登録されている値を配列で返す。
  • Count → 登録件数を返す。
  • 対応関係 → KeysとItemsは同じインデックスでペアになっている。

テンプレ1:Keysで全キーを取得

Sub Dict_KeysExample()
    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:Itemsで全値を取得

Sub Dict_ItemsExample()
    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:KeysとItemsをペアで扱う

Sub Dict_KeysItemsPair()
    Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary")
    dict.Add "C001", "東京"
    dict.Add "C002", "大阪"
    dict.Add "C003", "名古屋"

    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
  • 結果: キー=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 keysArr As Variant: keysArr = dict.Keys
    Dim itemsArr As Variant: itemsArr = dict.Items

    For i = LBound(keysArr) To UBound(keysArr)
        ws.Cells(i, 1).Value = keysArr(i)
        ws.Cells(i, 2).Value = itemsArr(i)
    Next i
End Sub
VB
  • ポイント:
    • A列にキー、B列に値を出力。
    • 全件を表形式で展開できる。

例題で練習

'例1:全キーを取得
Sub Example1()
    Dict_KeysExample
End Sub

'例2:全値を取得
Sub Example2()
    Dict_ItemsExample
End Sub

'例3:キーと値をペアで扱う
Sub Example3()
    Dict_KeysItemsPair
End Sub

'例4:全件をシートに展開
Sub Example4()
    Dict_OutputToSheet
End Sub
VB

初心者向けポイント

  • Keysでキー一覧、Itemsで値一覧 → 配列として扱える。
  • KeysとItemsは同じ順序 → インデックスでペアを確認できる。
  • For EachループでもOK → 全件を順番に処理可能。
  • シート展開も簡単 → 表形式にすれば見やすい。
  • Countで件数確認dict.Count で登録件数がわかる。

👉 この「Items・Keysテンプレ」を覚えておけば、Dictionaryに登録したデータを 一覧表示・表展開・配列処理 まで自在に扱えるようになります。

タイトルとURLをコピーしました