教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでStrComp関数の使い方

構文

構文は以下の通りです。

StrComp(文字列1, 文字列2, [比較の種類])

解説

StrComp関数は、2つの文字列を比較し、結果として数値を返します。文字列1は、比較する最初の文字列、文字列2は、比較する2番目の文字列、比較の種類 (オプション)は、比較方法を指定します。省略した場合はバイナリ比較が行われます。戻り値が0の場合、2つの文字列は同じです。戻り値が0以外の場合、2つの文字列が異なることを示します。例えば「Apple」と「apple」を同じ文字列として比較することも、大文字と小文字を区別して異なるものとして比較することもできます。

【比較の種類】

内容
0 バイナリ比較 (大文字と小文字を区別する)
1 テキスト比較 (大文字と小文字を区別しない)

【戻り値】

内容
0 2つの文字列は同じ
1 文字列1が文字列2よりも大きい
-1 文字列1が文字列2よりも小さい

プログラミング例

具体的なプログラミング例を紹介します。

Sub 文字列比較()
    Dim 文字列1 As String
    Dim 文字列2 As String
    Dim 比較結果 As Integer
    文字列1 = "りんご"
    文字列2 = "リンゴ"
    ' バイナリ比較
    比較結果 = StrComp(文字列1, 文字列2, 0)
    If 比較結果 = 0 Then
        MsgBox "バイナリ比較: 文字列は同じです。"
    Else
        MsgBox "バイナリ比較: 文字列は異なります。"
    End If
    ' テキスト比較
    比較結果 = StrComp(文字列1, 文字列2, 1)
    If 比較結果 = 0 Then
        MsgBox "テキスト比較: 文字列は同じです。"
    Else
        MsgBox "テキスト比較: 文字列は異なります。"
    End If
End Sub

上記のプログラムは、最初に「りんご」と「リンゴ」をバイナリ比較(大文字小文字を区別)し、異なると判断されます。次に、テキスト比較(大文字小文字を区別しない)を行い、同じ文字列であると認識されます。これにより、どの比較方法が適しているかを使い分けることができます。

まとめ

StrComp関数は、2つの文字列を比較してその違いを確認するための便利な関数です。バイナリ比較とテキスト比較の2つのモードを持ち、状況に応じて使い分けが可能です。例えば、パスワードなど大文字小文字を区別する場面ではバイナリ比較を、名前など区別しない場面ではテキスト比較を使うことができます。