この記事では、VBAマクロで文字列比較(部分一致:2列:別シートなど)する方法
ポイントとしては`Find`、`Range`、`Cells`関数を使用することです。
変数名は、完全な初心者でもわかりやすいように、独特の日本語ローマ字表記を使用しています。このため、実際の使用時には適切な英語表記に変更してご利用ください。
それでは、具体的な方法を見ていきましょう!
VBAマクロで文字列比較を部分一致(同じシートのB列とC列の2行目から最終行まで比較し、結果をD列に出力)でチェックする方法
それではまず、同じシート内でのB列とC列の文字列比較について解説していきます。
この方法では、B列とC列の各行を比較し、部分一致する場合にD列に結果を出力します。
Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。
Sub StringCompareSameSheet()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim saigoNoGyoretu As Long
saigoNoGyoretu = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
Dim i As Long
For i = 2 To saigoNoGyoretu
If InStr(ws.Cells(i, 2).Value, ws.Cells(i, 3).Value) > 0 Then
ws.Cells(i, 4).Value = "一致"
Else
ws.Cells(i, 4).Value = "不一致"
End If
Next i
End Sub
コードのAlt+F8を押し、マクロ選択画面で`StringCompareSameSheet`関数を実行します。
このコードでは、`InStr`関数を使用してB列とC列の文字列が部分的に一致しているかどうかを確認し、結果をD列に出力しています。
`For`ループを使って、2行目から最終行まで各行を順にチェックしています。
VBAマクロで文字列比較を部分一致(別シートのB列の2行目から最終行まで比較し、結果をC列に出力)でチェックする方法
続いては、別シートでの文字列比較について解説していきます。この方法では、一つのシートのB列と別のシートのB列を比較し、一致した場合には元のシートのC列に結果を出力します。
Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。
Sub StringCompareDifferentSheets()
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = ThisWorkbook.Sheets("Sheet1")
Set ws2 = ThisWorkbook.Sheets("Sheet2")
Dim saigoNoGyoretu As Long
saigoNoGyoretu = ws1.Cells(ws1.Rows.Count, "B").End(xlUp).Row
Dim i As Long
For i = 2 To saigoNoGyoretu
If Not ws2.Range("B:B").Find(ws1.Cells(i, 2).Value) Is Nothing Then
ws1.Cells(i, 3).Value = "一致"
Else
ws1.Cells(i, 3).Value = "不一致"
End If
Next i
End Sub
コードのAlt+F8を押し、マクロ選択画面で`StringCompareDifferentSheets`関数を実行します。
このコードでは、`Find`関数を使用して、別のシートのB列に指定した文字列が存在するかどうかを確認しています。この方法は、複数のシート間でデータを比較する際に非常に便利です。
まとめ