文字列比較にはStrComp関数を使います。
StrComp関数は、2つの引数の文字列を比較し、その結果を返します。
結果 | 戻り値 |
---|---|
第1引数が、第2引数より小さい | -1 |
第1引数が、第2引数と等しい | 0 |
第1引数が、第2引数より大きい | 1 |
また文字列比較の種類を指定することもできます。
Option Compareステートメント 宣言なし
実行プログラム
1 2 3 4 5 6 7 8 9 |
Sub Sample5_8_1() If StrComp(Cells(1, 1).Value, Cells(2, 1).Value) = 0 Then MsgBox "等しい" Else MsgBox "等しくない" End If End Sub |
- Option Compareは宣言されていない場合、バイナリ比較が既定値となります。
- 文字列比較の種類(第3引数)を省略すると、Option Compareの設定が適用されます。
Option Compareステートメント 宣言あり(テキスト)
実行プログラム
1 2 3 4 5 6 7 8 9 10 11 |
Option Compare Text Sub Sample5_8_1() If StrComp(Cells(1, 1).Value, Cells(2, 1).Value) = 0 Then MsgBox "等しい" Else MsgBox "等しくない" End If End Sub |
- 文字列比較の種類(第3引数)を省略すると、Option Compareの設定が適用されます。
ここでは”Option Compare Text”を設定しているのでテキスト比較が行われています。
文字列比較の種類を指定
実行プログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub Sample5_8_2() ' バイナリ比較 If StrComp(Cells(1, 1).Value, Cells(2, 1).Value, vbBinaryCompare) = 0 Then Cells(5, 2).Value = "等しい" Else Cells(5, 2).Value = "等しくない" End If ' テキスト比較 If StrComp(Cells(1, 1).Value, Cells(2, 1).Value, vbTextCompare) = 0 Then Cells(6, 2).Value = "等しい" Else Cells(6, 2).Value = "等しくない" End If End Sub |
- “vbBinaryCompare”を指定すると、大文字小文字、全角半角、カタカナ平仮名は区別されます。
その為、等しくないという結果になりました。 - “vbTextCompare”を指定すると、大文字小文字、全角半角、カタカナ平仮名は区別されません。
その為、等しいという結果になりました。