ディクショナリに限ったことではないがオブジェクト配列の初期化方法がパッと頭に思い浮かばなかったのでメモ。
元々のコードは以下のとおり。
Dim dic(3) As New Dictionary
この書き方はdicのNothing判定ができないことを知り、自分の中ではNGの書き方となった。
そこで納期に追われて焦りながらこう書き替えた。
Dim dic(3) As Dictionary: Set dic(3) = New Dictionary
これだと実行時エラーとなる。デバッグすると4つ目の要素以外はNothingとなっていた。
魔クロードに解決方法を尋ねると以下のとおり。
Dim dic(0 To 3) As Dictionary, i As Long
For i = 0 To 3
Set dic(i) = New Dictionary
Next
- ディクショナリ配列各要素の初期化は愚直に
Newを繰り返すこと - 配列宣言は
Toを使うことで意図が明確になる
宣言について、おっしゃるとおり納得です。これからは取り入れます。
ありがとう魔クロード👾