構文
object.CompareMode CompareModeプロパティは、Dictionary でキーの大文字小文字の区別をする/しないを選択します。
定数 | 値 | 説明 |
vbUseCompareOption | -1 | Option Compare ステートメントの設定を使用 |
vbBinaryCompare | 0 | バイナリ比較(大文字小文字区別する)規定値 |
vbTextCompare | 1 | バイナリ比較(大文字小文字区別しない) |
vbDatabaseCompare | 2 | Microsoft Access のみ |
Dictionaryのキー(要素)を全て削除するサンプルコード
'参照設定 Microsoft Scripting Runtime Public Sub sample() Dim dic As Dictionary Set dic = New Dictionary '■大文字小文字区別する場合 dic.CompareMode = vbBinaryCompare dic.Add "ABC", "あああ" dic.Add "Abc", "あああ" dic.Add "ABC", "あああ" dic.Add "aBC", "あああ" dic.Add "ABC", "あああ" Debug.Print dic.Count '5 dic.RemoveAll '■大文字小文字区別しない場合 dic.CompareMode = vbTextCompare dic.Add "ABC", "あああ" dic.Add "Abc", "あああ" '実行時エラー457 このキーは既にコレクションに割り当てられています dic.Add "ABC", "あああ" '実行時エラー457 このキーは既にコレクションに割り当てられています dic.Add "aBC", "あああ" '実行時エラー457 このキーは既にコレクションに割り当てられています dic.Add "ABC", "あああ" '実行時エラー457 このキーは既にコレクションに割り当てられています Debug.Print dic.Count '1 End Sub
注意点
- 既に要素があるDictionaryに対して、CompareModeを変更すると実行時エラーが出ます。
実行時エラー5 プロシージャの呼び出し、または引数が不正です。
関連記事
Dictionaryにキーと要素を追加する【Addメソッド】【ExcelVBA】 Dictionaryのキー(要素)を全て削除する【RemoveAllメソッド】【ExcelVBA】
コメント