StrComp関数は文字列の内容を比較します。
StrCompの構文
StrComp(string1, string2, [ compare ])
StrComp(文字列1, 文字列2, [ 比較方法 ])
[]内は省略可能です。省略した場合はバイナリーモードです。
比較方法はバイナリーモード(vbBinaryCompare)とテキストモード(vbTextCompare)があります。
戻り値の内容
| 条件 | 戻り値 |
| string1 が string2 より小さい | -1 |
| string1 が string2 と等しい | 0 |
| string1 が string2 より大きい | 1 |
| string1 または string2 が Null である | Null |
文字列の比較方法
バイナリモードの場合は文字コードの番号で比較されます。
テキストモードの場合はひらがなやカタナカや英字の順番で比較されます。
バイナリモードで”a”(10進数で97)と”b”(10進数で98)で比較すると、”a”の方が小さいため-1が返却されます。
同様に”A”(10進数で65)と”a”(10進数で97)を比較すると、”A”が小さいため-1が返却されます。
テキストモードの場合は”A”(10進数で65)と”a”(10進数で97)を比較すると、等しいと認識されて0が返却されます。
StrCompの使用例
・string1 が string2 より小さい
・string1 が string2 と等しい
・string1 が string2 より大きい
・string1 または string2 が Null である
・比較方法を指定して実行する
・表から文字列を取得して比較する
の内容で説明をしていきます。
string1 が string2 より小さい
アルファベットで比較
Sub StrComp1()
MsgBox "aとbを比較 戻り値" & StrComp("a", "b")
End Sub

数値で比較
Sub StrComp2()
MsgBox "1と2を比較 戻り値" & StrComp(1, 2)
End Sub

ひらがなで比較
Sub StrComp3()
MsgBox "あといを比較 戻り値" & StrComp("あ", "い")
End Sub

それぞれstring1 < string2 のため戻り値が-1です。
string1 が string2 と等しい
アルファベットで比較
Sub StrComp4()
MsgBox "abとabを比較 戻り値" & StrComp("ab", "ab")
End Sub

数値で比較
Sub StrComp5()
MsgBox "1と1を比較 戻り値" & StrComp(1, 1)
End Sub

ひらがなで比較
Sub StrComp6()
MsgBox "あとあを比較 戻り値" & StrComp("あ", "あ")
End Sub

それぞれstring1 = string2 のため戻り値が0です。
string1 が string2 より大きい
アルファベットで比較
Sub StrComp7()
MsgBox "bとacを比較 戻り値" & StrComp("b", "ac")
End Sub

数値で比較
Sub StrComp8()
MsgBox "10と1を比較 戻り値" & StrComp(10, 1)
End Sub

ひらがなで比較
Sub StrComp9()
MsgBox "いとあうを比較 戻り値" & StrComp("い", "あう")
End Sub

それぞれstring1 > string2 のため戻り値が1です。
string1 または string2 が Null である
Sub StrComp10()
MsgBox "あとNullを比較 戻り値" & StrComp("あ", Null)
End Sub

string2がNullのため戻り値がNullです。
比較方法を指定して実行する
比較方法ですが、大文字小文字全角半角を比較するしないの設定が出来ます。
全角と半角で比較する(vbBinaryCompare)
Sub StrComp11()
MsgBox "bとbを比較 戻り値" & StrComp("b", "b", vbBinaryCompare)
End Sub

全角と半角で比較しない(vbTextCompare)
Sub StrComp12()
MsgBox "bとbを比較 戻り値" & StrComp("b", "b", vbTextCompare)
End Sub

全角と半角を比較していますが戻り値が0です。
大文字と小文字で比較する
Sub StrComp13()
MsgBox "Bとbを比較 戻り値" & StrComp("B", "b")
End Sub

大文字と小文字で比較しない(vbTextCompare)
Sub StrComp14()
MsgBox "Bとbを比較 戻り値" & StrComp("B", "b", vbTextCompare)
End Sub

大文字と小文字で比較していますが戻り値が0です。
表から文字列を取得して比較する

C列とD列の文字列を比較してE列に戻り値を設定します。
Sub StrComp15()
Dim str1, str2 As String
Dim i As Integer
i = 2
Do While Cells(i, 3) <> ""
'セルから文字列を取得
str1 = Cells(i, 3)
str2 = Cells(i, 4)
'セルにStrCompの戻り値を設定
Cells(i, 5) = StrComp(str1, str2)
i = i + 1
Loop
End Sub

E列に比較した戻り値が設定されました。
今回はStrComp関数について記載させて頂きました。
少しでも皆様の参考になれば幸いです。