【ExcelVBA】For Each文で連想配列[Dictionary]の値を順番に取得する


この記事はプロモーションを含みます。

ExcelVBA

Excel VBAにおける、ループ処理(繰り返し処理)を行う「For」文ですが、ここでは、連想配列と組み合わせて使用する「For Each」文について解説しています。

構文

連想配列[Dictionary]とFor Each文を組み合わせる構文です。

For Each 連想配列から取得した値を格納する変数 In 連想配列
	Debug.Print(連想配列から取得した値を格納する変数)
Next

使用例

「For Each」文を使用して、ループ処理を行うサンプルになります。

Sub Sample()

    ' 宣言
    Dim dic As Object, key As Variant
    Set dic = CreateObject("Scripting.Dictionary")
    
    ' キーとアイテムを登録する
    dic.Add "りんご", "100円"
    dic.Add "みかん", "100円"
    dic.Add "メロン", "300円"
    
    ' ループ
    For Each key In dic
        ' 連想配列の内容を確認
        Debug.Print (key & "," & dic(key))
    Next

End Sub

実行すると、連想配列に格納した値が順番に取り出されて、1つずつイミディエイトウィンドウに表示されます。
下記がサンプルの実行結果です。

りんご,100円
みかん,100円
メロン,300円

コメント

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