分かりやすく、使いやすく。

Dictionary をループして処理する方法

スポンサーリンク

Dictionary をループして処理するには、 For Each を使用する方法と For を使用する方法があります。

  1. For Each でループする方法
  2. For ループする方法(keysとitemsを使用する)


For Each でループする方法

サンプルコードは次の通りです。

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Option Explicit
 
Sub test1()
    'Dictionary の初期化
    Dim dicColors As Object
    Set dicColors = CreateObject("Scripting.Dictionary")
    
    'キーと値を追加
    dicColors.Add "red", "赤"
    dicColors.Add "blue", "青"
    dicColors.Add "pink", "桃"
    
    'Dictionary をループして中身を表示
    Dim key As Variant
    
    For Each key In dicColors
         Debug.Print "キーの値:" & key; "、対応する値:" & dicColors(key)
    Next key
End Sub 

上記の実行結果は次の通りです。

実行結果
1
2
3
キーの値:red、対応する値:赤
キーの値:blue、対応する値:青
キーの値:pink、対応する値:桃 

For ループする方法(keysとitemsを使用する)

サンプルコードは次の通りです。

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Option Explicit
 
Sub test2()
    'Dictionary の初期化
    Dim dicColors As Object
    Set dicColors = CreateObject("Scripting.Dictionary")
    
    'キーと値を追加
    dicColors.Add "red", "赤"
    dicColors.Add "blue", "青"
    dicColors.Add "pink", "桃"
    
    'ループ用の変数
    Dim i As Integer
    Dim keys
    Dim items
    
    keys = dicColors.keys
    items = dicColors.items
    
    'ディクショナリの要素数だけループする
    For i = 0 To dicColors.Count - 1
        Debug.Print "キーの値:" & keys(i) & "、対応する値:" & items(i)
    Next i
End Sub 

上記の実行結果は次の通りです。

実行結果
1
2
3
キーの値:red、対応する値:赤
キーの値:blue、対応する値:青
キーの値:pink、対応する値:桃 
スポンサーリンク
スポンサーリンク