非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【VBA】連想配列(Dictionary)の値に配列を入れるとかなり便利

   

VBAにはDictionaryという連想配列機能があり、使えるっちゃ使えるんだけどKey-Value一対のデータ構造なので使える範囲は限られるんです。

…と思っていましたが、値に配列を突っ込めたら使い勝手が一気に広がるなと思って試したところできました

こちらが例です。値にArray関数を使って配列を突っ込んでいます。

Dim myDic As Object
Set myDic = CreateObject("Scripting.Dictionary")

myDic.Add "104-0061", Array("東京都", "中央区", "銀座", "1-1")
myDic.Add "002-8071", Array("北海道", "札幌市北区", "あいの里一条", "1-1")
myDic.Add "461-0012", Array("愛知県", "名古屋市東区", "相生町", "1-1")
myDic.Add "730-0851", Array("広島県", "広島市中区", "榎町", "1-1")

MsgBox Join(myDic("002-8071"), "")
 

 

最後に値を連結してメッセージボックスで表示させていますが、以下のようにちゃんと表示されました。

 

ちなみに以下のような書き方だと1番目の要素である「北海道」だけが抽出できます。

myDic("002-8071")(0)
 

 

今まで連想配列に配列を突っ込めるとは知らなかったのですが、これができるのであれば使える幅が広がります。

 

スポンサーリンク

 - VBA