[VBA]ディクショナリにディクショナリを入れる

どうも思ったようにデータが格納できないと悩んでいたら、ディクショナリにディクショナリを入れて使うコードが、いまだに書けていなくて愕然としました。

DictionaryAにDictionaryBを入れるときにDictionaryBを更新するには

DictionaryBをDictionaryAから取り出す
DictionaryBを書き換える
DictionaryAにディクショナリBを格納する

というプロセスを取るかと思いますが、そのコードとしては

Dim DictionaryA As Dictionary
Dim DictionaryB As Dictionary

Dim key As Variant
For Each key in DictionaryA.keys
       Set DictionaryB = DictionaryA(key)
       DictionaryB(keyB) = parameter
      Set DictionaryA(key) = DictionaryB
Next Key

ですね。Setで別物として取り出し、サイドSetで別ものとして格納する。ここでNewだとか、Addだとか、DictionaryA(key)= DictionaryBとかやっちゃだめ、という感じですね。いやはや。やっとコードが治りましたよ。


この記事が気に入ったらサポートをしてみませんか?