Excel VBA StrComp関数の使い方と文字列を比較する方法

VBA関数

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区別しない。
戻り値
結果説明
-1string1<string2
0string1=string2
1string1>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
タイトルとURLをコピーしました