【ExcelVBA】連想配列[Dictionary]でキーの大文字小文字を区別しない


この記事はプロモーションを含みます。

ExcelVBA

Excel VBAの連想配列[Dictionary]で、キーの大文字・小文字を区別しないようにする方法を解説します。

大文字・小文字を区別する(デフォルトの設定)

デフォルトの設定では、大文字・小文字を区別する設定になっています。

なので、下記のサンプルはエラーが発生せずに処理されます。

デフォルトで大文字・小文字を区別する設定になっていますが、下記のサンプルでは、明示的に区別する設定(dic.CompareMode = vbBinaryCompare)を実行しています。

Sub Sample()

    ' 宣言
    Dim dic As Object
    Set dic = CreateObject("Scripting.Dictionary")
    
    ' 大文字・小文字を区別する
    dic.CompareMode = vbBinaryCompare
    
    ' キーとアイテムを登録する
    dic.Add "ABC", "ABC"
    dic.Add "abc", "abc"
    
    ' 要素数の確認
    Debug.Print (dic.Count)

End Sub

大文字・小文字を区別しない

下記は、大文字・小文字を区別しないサンプルです。

Sub Sample()

    ' 宣言
    Dim dic As Object
    Set dic = CreateObject("Scripting.Dictionary")
    
    ' 大文字・小文字を区別しない
    dic.CompareMode = vbTextCompare
    
    ' キーとアイテムを登録する
    dic.Add "ABC", "ABC"
    dic.Add "abc", "abc"
    
    ' 要素数の確認
    Debug.Print (dic.Count)

End Sub

このサンプルを実行すると、以下のエラーが発生します。
これは、登録しようとしているキーが既に存在するというエラーです。
大文字・小文字を区別しない設定なので、「ABC」と「abc」は同じキーとして扱われています。

コメント

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