配列(Dictionary)

DictionaryのKey/Itemを二次元配列に変換する【ExcelVBA】

Dictionaryに要素を追加(Add)して、データを取得する場合は色々な方法があります。
Dictionaryの結果を2次元配列に格納したい場合があります。
一次元配列の場合は代入するだけでしたが、二次元配列の場合はそのまま、一つずつ代入します。

DictionaryのKey/Itemを二次元配列に変換するサンプルコード

'■Dictionaryから二次元配列に変更する
Public Function call_dic_to_arr2D(dic As Dictionary)
    Dim tmp() As Variant
    ReDim tmp(UBound(dic.Keys), 1)
    
    Dim i As Long
    For i = 0 To UBound(tmp)
        tmp(i, 0) = dic.Keys(i)
        tmp(i, 1) = dic.Items(i)
    Next
        
    call_dic_to_arr2D = tmp
End Function

実際の使い方

'参照設定 Microsoft Scripting Runtime
Public Sub sample()

    Dim dic As Dictionary
    Set dic = New Dictionary
        
    dic.Add "1月", "Jan"
    dic.Add "2月", "Feb"
    dic.Add "3月", "Mar"
    dic.Add "4月", "Apr"
    dic.Add "5月", "May"
    dic.Add "6月", "Jun"
    dic.Add "7月", "Jul"
    dic.Add "8月", "Aug"
    dic.Add "9月", "Sep"
    dic.Add "10月", "Oct"
    dic.Add "11月", "Nov"
    dic.Add "12月", "Dec"

    Dim arr As Variant
    arr = call_dic_to_arr2D(dic)
    
    '■結果確認
    Debug.Print arr(0, 0)   '1月
    Debug.Print arr(0, 1)   'Jan
    Debug.Print arr(1, 0)   '2月
    Debug.Print arr(1, 1)   'Feb
End Sub

関連記事

コメント

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