'比較演算子を使って比較'一致する場合
If a = b Then
'一致しない場合
If a <> b Then
'大文字の半角に統一する
a = StrConv(UCase("ABC"), vbNarrow)
'StrCompを使って比較'一致する場合
If StrComp(a, b) = 0 Then
'一致しない場合
If StrComp(a, b) <> 0 Then
'全角と半角、大文字と小文字、カタカナとひらがなを区別しない
If StrComp(a, b, vbTextCompare) = 0 Then
では、解説していきます。
VBAで文字列を比較演算子を使って比較
Excel VBAで、文字列を比較する簡単な方法として、比較演算子があります。
比較演算子は、一致する場合に使う『=』と不一致の場合に使う『<>』があります。
『=』で比較する
文字列が一致するかを判定するには、比較演算子『=』を使えばできます。
文字列『ABC』と『ABC』が一致するかを比較するVBAコードです。
Sub TEST1()
a = "ABC"
b = "ABC"
'一致する場合
If a = b Then
MsgBox "一致します"
End If
End Sub
VBAの実行結果です。
比較演算子『=』で比較
結果は、もちろん『一致します』となります。
『<>』で比較する
文字列が一致しないかを判定する比較演算子は『<>』となります。
簡単な例として、文字列『ABC』と『abc』が一致しないかを比較するVBAコードを作ってみます。
Sub TEST2()
a = "ABC"
b = "abc"
'一致しない場合
If a <> b Then
MsgBox "一致しません"
End If
End Sub
VBAの実行結果です。
比較演算子『<>』で比較
結果は、『一致しません』となります。
大文字と小文字を区別しない
文字列を比較する際に、大文字を小文字を区別したくないときは、『Ucase』を使うといいです。
文字列『ABC』と『abc』を大文字と小文字を区別しないで比較してみます。
Sub TEST3()
a = UCase("ABC") '大文字に変換する
b = UCase("abc") '大文字に変換する'一致する場合
If a = b Then
MsgBox "一致します"
End If
End Sub
Sub TEST5()
a = StrConv(UCase("ABC"), vbNarrow) '大文字の半角に変換
b = StrConv(UCase("abc"), vbNarrow) '大文字の半角に変換'一致する場合
If a = b Then
MsgBox "一致します"
End If
End Sub
結果をみてみます。
全角と半角、大文字と小文字を区別しないで比較
結果は、『一致します』となりました。
『ABC』と『abc』ってほぼ別ものですけどね。文字の種類を区別しないで比較ができます。
VBAで文字列をStrCompを使って比較
Excel VBAで文字列を比較するもう一つの方法として、『StrComp』があります。
StrComp使い方
StrCompの入力は、
『数字 = StrComp(文字列,文字列)』
とすれば、文字列を比較できます。
返り値の『数字』に入る値は、
文字列が一致の場合:0
左の文字列が大きい場合:1
右の文字列が大きい場合:-1
のようになります。
一致・不一致となった場合
では、文字列が一致する場合の例でStrCompの動きをみてみます。
一致する場合
文字列『ABC』と『ABC』をStrCompで比較するVBAコードです。
Sub TEST6()
a = "ABC"
b = "ABC"
'一致する場合
If StrComp(a, b) = 0 Then
MsgBox "一致します"
End If
End Sub
結果です。
結果は、『一致します』となります。
不一致となる場合
文字列『ABC』と『abc』をStrCompで比較するVBAコードです。
Sub TEST7()
a = "ABC"
b = "abc"
'一致しない場合
If StrComp(a, b) <> 0 Then
MsgBox "一致しません"
End If
End Sub