Vba で文字列を比較する方法: 例付き
VBA では次のメソッドを使用して文字列を比較できます。
方法 1: 大文字と小文字を区別する文字列を比較する
SubCompareStrings ()
Dim i As Integer
For i = 2 To 10
Range(" C " & i) = StrComp(Range(" A " & i), Range(" B " & i)) = 0
Next i
End Sub
このマクロは、範囲A2:A10およびB2:B10内の一致するセル内の文字列間で大文字と小文字を区別した文字列比較を実行し、範囲C2:C10で TRUE または FALSE を返し、文字列が等しいかどうかを示します。
方法 2: 大文字と小文字を区別しない文字列比較
SubCompareStrings ()
Dim i As Integer
For i = 2 To 10
Range(" C " & i) = StrComp(Range(" A " & i), Range(" B " & i), vbTextCompare) = 0
Next i
End Sub
このマクロは、 A2:A10およびB2:B10 の範囲内の一致するセル内の文字列間で、大文字と小文字を区別しない文字列比較を実行します。
次の例は、Excel で次の文字列リストを使用して各メソッドを実際に使用する方法を示しています。
例 1: VBA での大文字と小文字を区別する文字列の比較
次のマクロを作成して、列 A と列 B の一致する各文字列の間で大文字と小文字を区別した文字列比較を実行できます。
SubCompareStrings ()
Dim i As Integer
For i = 2 To 10
Range(" C " & i) = StrComp(Range(" A " & i), Range(" B " & i)) = 0
Next i
End Sub
このマクロを実行すると、次の出力が表示されます。
文字列が等しく、大文字と小文字が同じである場合、列 C はTRUEを返します。
それ以外の場合、列 C はFALSEを返します。
例 2: VBA での大文字と小文字を区別しない文字列の比較
次のマクロを作成して、列 A と列 B の一致する各文字列の間で大文字と小文字を区別しない文字列比較を実行できます。
SubCompareStrings ()
Dim i As Integer
For i = 2 To 10
Range(" C " & i) = StrComp(Range(" A " & i), Range(" B " & i), vbTextCompare) = 0
Next i
End Sub
このマクロを実行すると、次の出力が表示されます。
列 C は、大文字と小文字に関係なく、文字列が等しい場合にTRUEを返します。
列 C は、文字列が等しくない場合にのみFALSEを返します。
注: VBA のStrComp関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA: 文字列内の文字を置換する方法
VBA: 文字列から特殊文字を削除する方法
VBA: 文字列を int に変換する方法