構文
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】




コメント