配列(一次元/二次元)

「実行時エラー457 このキーは既にこのコレクションの要素に割り当てられています」が出た場合【ExcelVBA】

「このキーは既にこのコレクションの要素に割り当てられています」が出た場合

Dictionaryを使用時、「実行時エラー457 このキーは既にこのコレクションの要素に割り当てられています」が発生する場合があります。

同一のキーを登録しようとすると、エラーが発生します。
Dictionaryはキーの重複は許容されません

「このキーは既にこのコレクションの要素に割り当てられています」が発生するコードと対処方法

'要参照設定 Microsoft Scripting Runtime
Public Sub sample()
    Dim dic As Dictionary
    Set dic = New Dictionary
    
    '■同一のキー「A」は登録できない
    dic.Add "A", "12345"
    dic.Add "A", "23456" '実行時エラー457 このキーは既にコレクションに割り当てられています
    dic.Add "a", "23456" '実行時エラー457 このキーは既にコレクションに割り当てられています

    'Compareモードを緩くするとカタカナや大文字小文字を許容する
    dic.CompareMode = vbBinaryCompare
    dic.Add "a", "12345"

End Sub

その他

  • Dictionaryと配列の大きな違いが重複を許容するかどうかです。
    Dictionaryと配列を使いこなすことでVBAがもっと楽になります。

関連記事

コメント

タイトルとURLをコピーしました