Dictionary オブジェクト 実行時エラー 457 を出さないために 指定したキー(key)が登録されているか確認する(Excel VBA)

【本日のミッション】

Excel VBAでDictionary オブジェクトのAddメソッドを実行するときに

「実行時エラー’457′:
このキーは既にこのコレクションの要素に割り当てられています。」

と出てしまった。
このエラーを回避するために、あらかじめ指定したキー(key)が登録されているか確認せよ。

ミッションの概要

Dictionary オブジェクトのAddメソッドを実行する際、既に同じkeyが登録してあると、

実行時エラー’457′:
このキーは既にこのコレクションの要素に割り当てられています。

というエラーが出てしまいます。

このエラーを出さないために、Addメソッドを使用する前に、キー(key)が登録されているかどうか確認するのが今回のミッションです。

Existsメソッドでキー(key)の登録を確認

Existsメソッドは、Dictionary オブジェクトにキー(key)が既に登録されていたら「True」を返し、登録されていなかったら「False」を返します。

メソッド説明
Exists(key)指定したキー(key)が存在するかどうか、論理値(True/False)を返します。
Dictionaryオブジェクト.Exists(キー)

下記プロシージャでは キー(key)が dictinary オブジェクト「dic_c」に登録されていない(False)場合、If 内のAddメソッドを行います。

If dic_c.Exists(キー) =False Then
    dic_c.Add キー, 値
end if

参考

Dictionary オブジェクト(連想配列) とは ビッグデータ高速処理を可能にする技 (Excel VBA)
セル範囲を一気に変数(配列)に入れる ~バリアント型(Variant)変数を配列として使用する~(Excel VBA)
重複しないユニークなリスト作成 ~Dictionaryオブジェクト(連想配列)を使う1~ (Excel VBA)
重複しないユニークなリスト作成 ~Dictionaryオブジェクト(連想配列)を使う2~ (Excel VBA)
Dictionary オブジェクト(連想配列) CreateObject関数を使う方法・ 参照設定を使う方法 違いを理解してエラー防止(Excel VBA)
Dictionary オブジェクトに新しくキー(key)を登録し、値(item)を関連付ける(Excel VBA)
Dictionary オブジェクト 実行時エラー 457 を出さないために 指定したキー(key)が登録されているか確認する(Excel VBA)

■■■スポンサーリンク■■■