[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とかやっちゃだめ、という感じですね。いやはや。やっとコードが治りましたよ。
この記事が気に入ったらサポートをしてみませんか?