HOME > 即効テクニック > Excel VBA > 文字列操作関連のテクニック > 2つの文字列を比較する(StrComp関数)

即効テクニック

文字列操作関連のテクニック

2つの文字列を比較する(StrComp関数)

(Excel 2000)
String1とString2の2つの文字列を引数Compareで指定した比較モードで比較を行い、その結果を返します。引数Compareで使用する定数は下の一覧のとおりです。なお、この引数を省略した場合にはOption Compareステートメントの設定を利用して比較が行なわれます。

・引数compareで指定する比較モードを表す定数一覧(VbCompareMethod)

定数          値   説明
vbUseCompareOption   -1   Option Compareステートメントの設定を使用して比較
vbBinaryCompare     0   バイナリ モードの比較
vbTextCompare      1   テキスト モードの比較
vbDatabaseCompare    2   Microsoft Access の場合のみ有効。データベースに
                格納されている設定に基づいて比較


StrComp関数の戻り値と内容に関しては次の一覧を参照してください。

・StrComp関数の戻り値一覧

内容              戻り値
string1はstring2未満      -1
string1とstring2は等しい     0
string1はstring2を超える     1
String1またはstring2はNull値  Null 値


 構文 StrComp(String1, String2, Compare)


 設定項目        内容
 String1     比較を行なう文字列式を指定します [省略不可]
 String2     比較を行なう文字列式を指定します [省略不可]
 Compare     文字列比較のモード指定(表参照) [省略可能]


次のサンプルは、A列に入力された値とB列に入力された値をテキストモードで比較し、その結果をC列とD列に入力します。


●サンプル●
Sub StrCompSamp1()
    Dim i As Integer

    For i = 2 To 7
        Cells(i, 3) = StrComp(Cells(i, 1), Cells(i, 2), vbTextCompare)
        '---テキストモードでA列とB列の値を比較し、結果をC列に入力
        If Cells(i, 3).Value = 0 Then
            Cells(i, 4).Value = "両者は等しい"
        Else
            Cells(i, 4).Value = "両者は等しくありません"
        End If
    Next i

End Sub

●ポイント●
通常の比較演算子を用いた比較で、この例のような結果を得るには、モジュールの先頭でOption Compare Textステートメントを宣言します。ただし、そのモジュール全体で宣言が有効となってしまうという欠点があります。