4/08/2023

Excel VBA。セル内で文字列の一部が含まれているかを手早く判断したい。【part】

Excel VBA。セル内で文字列の一部が含まれているかを手早く判断したい。

<Excel VBA:Like演算子>

セル内に該当する文字列が含まれているかを判断する場合、数式をどうしようか考えるよりも、Excel VBAでプログラム文をつくってしまうほうが、手早く確認できるかもしれません。


 

今回は、A列の住所に「横浜市」が含まれているかどうか、確認して含まれていたら、B列に「○」を表示したいわけです。


では、次のようにExcel VBAでプログラム文をつくってみました。

Sub 横浜市()

    Dim i As Long

    Dim lastrow As Long

    

    lastrow = Cells(Rows.Count, "a").End(xlUp).Row


    For i = 2 To lastrow

        If Cells(i, "a").Value Like "*横浜市*" Then

            Cells(i, "b") = "○"

        End If

    Next

End Sub


プログラム文を確認しておきましょう。

最初は、変数宣言

Dim i As Long

Dim lastrow As Long


lastrow = Cells(Rows.Count, "a").End(xlUp).Row

変数lastrowには、データの最終行の行番号を代入しております。

このlastrowは、繰り返し処理でつかっています。


For i = 2 To lastrow ~ Next

For文で繰り返し処理をしています。


If Cells(i, "a").Value Like "*横浜市*" Then ~End If

If文で、横浜市がセル内に含まれているかをチェックしています。


ポイントは、「Like "*横浜市*"


Excelでは、あまり馴染みはないかもしれませんが、Accessではお馴染みのLike演算子をつかうことで、Accessの抽出と同じようにつかうことができます。


そして、「横浜市」をワイルドカードの「*(アスタリスク)」で挟んであげれば、「含まれる」という条件にすることができます。


これで、横浜市が含まれていたらという条件を作ることができます。