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の抽出と同じようにつかうことができます。
そして、「横浜市」をワイルドカードの「*(アスタリスク)」で挟んであげれば、「含まれる」という条件にすることができます。
これで、横浜市が含まれていたらという条件を作ることができます。