#現象
・空のDictionary
のCount
はもちろんゼロだし、Keys
プロパティも空
Dim dict As Dictionary
Set dict = New Dictionary
Debug.Print dict.Count '0
Debug.Print dict.Keys(0) 'インデックスが有効範囲にありません
・空のDictionary
で、追加していないKey
のItem
を参照すると、Key
が追加される(追記:これはばっちり明記された仕様でした)
Dim dict As Dictionary
Set dict = New Dictionary
Debug.Print dict.Item("test")
Debug.Print dict.Count '1
Debug.Print dict.Keys(0) 'test
・空のCollection
で同じことをするとエラーが返る
Dim col As Collection
Set col = New Collection
Debug.Print col.Item("test") 'プロシージャの呼び出し、または引数が不正です
##補足
・なので、こういうことはできない(.Add
の前に.Remove
が必要 ⇒は理解不十分でした。コメント欄参照ください)
If IsEmpty(dict.Item("foo")) Then
dict.Add Key:="foo", Item:=bar
End If