Excel

【Excel】VBAマクロで文字列を比較・判定する方法 – 大文字・小文字の区別、StrComp関数の活用【StrComp】

当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

この記事では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関数の活用により、大文字・小文字の区別を選択して比較が可能です。
是非、日常の作業やデータ分析などで活用してみてください。