【VBA】連想配列を一次元配列に変換する方法(Dictionary)
今回は連想配列を一次元配列に変換する方法を紹介します。
使うケースは少ないかもしれませんが、私は連想配列の中身をソートするために一次元配列に変換したことがあります。
連想配列を一次元配列に変換する方法
Sub Dic2Arr()
'連想配列のアイテムを一次元配列へ変換
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
dic.Add "key1", "item1"
dic.Add "key2", "item2"
dic.Add "key3", "item3"
Dim oneArr()
oneArr = dic.Items 'item1~item3の入った一次元配列
End Sub
連想配列を一次元配列に変換するサンプルコードになります。
コードをステップ実行すると、oneArrがitem1~item3の入った一次元配列配列になるのが分かります。
oneArr = dic.Items 'item1~item3の入った一次元配列
ポイントはこの部分で、連想配列でItemsメソッドを使うとすべてのアイテムを配列で返します。
この配列をoneArrで受け取っています。
連想配列のKeyを一次元配列に変換する方法
Sub Keys2Arr()
'連想配列のKeyを一次元配列へ変換
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")
dic.Add "key1", "item1"
dic.Add "key2", "item2"
dic.Add "key3", "item3"
Dim oneArr()
oneArr = dic.Keys 'key1~key3の入った一次元配列
End Sub
先ほどは連想配列のアイテムを一次元配列にしましたが、同じようにKeyも一次元配列に変換できます。
oneArr = dic.Keys 'key1~key3の入った一次元配列
連想配列のItemsメソッドを使うとすべてのKeyを配列で返します。
この配列をoneArrで受け取っています。