この記事ではExcelのVBAマクロで文字列を比較・判定する方法について解説していきます。
ポイントとしてはStrComp関数、Option Compare Text、Option Compare Binaryを使用することです。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。
そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
VBAマクロで文字列を比較・判定(大文字、小文字を区別しない場合、判定結果をC列に)【StrComp, Option Compare Text】
それではまず、大文字、小文字を区別しない文字列の比較方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Option Explicit
Option Compare Text '大文字、小文字を区別しない
Sub MojiHikaku_KubetsuNashi()
Dim rng As Range
Dim mojiA As String
Dim mojiB As String
Dim hanteiKekka As String
Dim hensuu As Integer
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1")
While rng.Value <> ""
mojiA = rng.Value
mojiB = rng.Offset(0, 1).Value
hensuu = StrComp(mojiA, mojiB, vbTextCompare)
If hensuu = 0 Then
hanteiKekka = "一致"
ElseIf hensuu = 1 Then
hanteiKekka = "A > B"
Else
hanteiKekka = "A < B"
End If
rng.Offset(0, 2).Value = hanteiKekka
Set rng = rng.Offset(1, 0)
Wend
End Sub
コードのAlt+F8を押し、マクロ選択画面でMojiHikaku_KubetsuNashi関数を実行します。
このコードは、A列とB列の文字列を比較して、結果をC列に出力するものです。
比較の際、大文字と小文字の違いは無視されます。
VBAマクロで文字列を比較・判定(大文字、小文字を区別する場合、判定結果をC列に)【StrComp, Option Compare Binary】
続いては、大文字、小文字を区別する文字列の比較方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Option Explicit
Option Compare Binary '大文字、小文字を区別する
Sub MojiHikaku_KubetsuAri()
Dim rng As Range
Dim mojiA As String
Dim mojiB As String
Dim hanteiKekka As String
Dim hensuu As Integer
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1")
While rng.Value <> ""
mojiA = rng.Value
mojiB = rng.Offset(0, 1).Value
hensuu = StrComp(mojiA, mojiB, vbBinaryCompare)
If hensuu = 0 Then
hanteiKekka = "一致"
ElseIf hensuu = 1 Then
hanteiKekka = "A > B"
Else
hanteiKekka = "A < B"
End If
rng.Offset(0, 2).Value = hanteiKekka
Set rng = rng.Offset(1, 0)
Wend
End Sub
コードのAlt+F8を押し、マクロ選択画面でMojiHikaku_KubetsuAri関数を実行します。
このコードは、A列とB列の文字列を比較して、結果をC列に出力するものです。
比較の際、大文字と小文字の違いは正確に反映されます。
まとめ
ExcelのVBAを使って、文字列の比較・判定を行う方法を学びました。
特にStrComp関数の活用により、大文字・小文字の区別を選択して比較が可能です。
是非、日常の作業やデータ分析などで活用してみてください。