Excel VBAで「StrComp関数」を使用して文字列を比較する方法をご説明します。
大小や等しいかの比較が可能です。
StrComp関数の特徴は大文字と小文字や全角半角、ひらがなカタカナの区別をする、しないを指定出来るところにあります。
文字列が等しいかどうかを比較する場合もっとも簡単な方法が「=」で比較しまする方法かと思いますが、イコールは大文字、小文字を区別しません。
そのため「ABC」と「abc」を等しいと判定します。
大文字と小文字や全角半角、ひらがなカタカナを区別して文字列を比較する場合にはStrComp関数を使用すると便利です。
1.StrComp関数の使い方
2つの指定した文字列を比較する事ができます。
次の様に記述します。
StrComp(string1、string2、[compare])
string1とstring2に比較したい文字列を指定します。
compareは比較方法を指定します。
また、 比較方法のcompareは省略できるので次のようにも記述する事が可能です。
StrComp(string1、string2)
省略した場合は「vbBinaryCompare」が既定となり区別して比較します。
比較した結果は数値型 (Integer)です。
戻り値がTrue/Falseと勘違いしやすいですが、-1、0、1の数値です。
compareの定数
定数 | 説明 |
vbBinaryCompare | 大文字と小文字、半角と全角、ひらがなとカタカナを区別する。 |
vbTextCompare | 区別しない。 |
戻り値
結果 | 説明 |
-1 | string1<string2 |
0 | string1=string2 |
1 | string1>string2 |
Null | string1 か2がNull |
2.サンプルコード
Sub Sample1()
Debug.Print StrComp("ABC", "ABC") '0
Debug.Print StrComp("ABC", "abc") '-1
Debug.Print StrComp("ABC", "abc", vbTextCompare) '0
Debug.Print StrComp("あいう", "あいう") '0
Debug.Print StrComp("あいう", "ぁぃぅ") '1
Debug.Print StrComp("あいう", "アイウ", vbBinaryCompare) '-1
Debug.Print StrComp("あいう", "アイウ", vbTextCompare) '0
Debug.Print StrComp(123, 123) '0
Debug.Print StrComp("123", "123") '-1
Debug.Print StrComp("123", "123", vbTextCompare) '0
End Sub