DictionaryにAddしていないのに、Itemが追加される
最近、VBA開発でハマったケースです。
VBAでDictionaryを使用した際、Addしていないのにitemが追加されている挙動が出ました。
VBAでDictionaryを使用した際、Addしていないのにitemが追加されている挙動が出ました。
存在しないキーに対して値を取得しようとしたことが原因
Dictionaryは存在しないKeyに対して値(Item)を取得しようとすると、Keyを作成する仕様があります
(バグではなく仕様です)
DictionaryにAddしていないのに、Itemが追加のサンプルコード
'参照設定 Microsoft Scripting Runtime
Public Sub sample()
Dim dic As Dictionary
Set dic = New Dictionary
'■isEmptyで確認すると要素が存在しないと、勝手にAddされてしまう。
If IsEmpty(dic("aaa")) Then
Debug.Print "要素が存在しません"
Else
Debug.Print "要素が存在します"
End If
'■Existsで存在確認して回避する
If dic.Exists("bbb") = False Then
Debug.Print "要素が存在しません"
Else
Debug.Print "要素が存在します"
End If
End Sub



コメント