【これで解決】Like演算子を使った文字列を判定する方法!【Excel VBA】
こんにちは!『ルウちゃんのExcel Labo』管理人の@rouxchanblogです!
今回はこのような悩みについて解説します。
セル内に特定の文字列を含むか判定したい!
どうやってやればいいの?
- 特定の文字列を含むか判定する方法
- Like演算子の活用方法
- ワイルドカードの使い方
文字列を判定する方法
早速結論ですが、特定の文字列を含むか判定するには「Like演算子」と「ワイルドカード」を組み合わせて使いましょう!
サンプルコードと実行画面を見ながら確認してください!
Sub Sample()
Dim i As Long
'変数「i」を宣言する
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
'2から最終行まで処理を繰り返す
If Not Cells(i, 1) Like "*×*" Then
'セルに「×」を含む時に処理を実行する
Cells(i, 4) = Cells(i, 2) * Cells(i, 3)
'「A」×「B」を「結果」に出力する
End If
Next i
End Sub
このようにNo.に「×」を含む列以外を計算することができました。
特定の文字列を含むかを判定することができればこのような処理も可能になります!
次にLike演算子の使い方と特徴を見ていきましょう!
Like演算子とは
Like演算子はデータとデータを比較できる演算子です。
result = string Like pattern
Microsoftの公式ドキュメントの記述方法によるとこのようになっています。
分かりづらいと思いますので下記のコードと画像を見てイメージしてください。
If Range("A2") Like Range("B2") Then
Range("C2").Value = "○"
Else
Range("C2").Value = "×"
End If
このように値1と値2を比較して同じ場合はtrue、違う場合はFalseを返してくれます。
ワイルドカードとは
ワイルドカードとは色々なパターンごとに一致する形を取れる文字列になります。
例えば、「#」は0〜9までの半角数字と一致する形です。
今回使った「*」は文字数制限無しのすべてに一致する形になれる文字列です。
*×*←のように判定したい文字列を「*」で挟む
ポケモンで例えるとメタモンみたいな存在です笑
ほかにもワイルドカードには種類がありますので下記の表を参考にしてください!
文字 | 説明 |
---|---|
? | 任意の1文字 |
* | 0文字以上の文字 |
# | 0~9の半角数字 |
[charlist] | charlistに含まれる全角または半角の1文字 |
[!charlist] | charlistに含まれない全角または半角の1文字 |
このワイルドカードを活用することで文字列の中に特定の文字列があるかを判定することができるのです!
まとめ
今回は「Like演算子」と「ワイルドカード」を組み合わせて特定の文字列を判定する処理を見ていきました。
このように組み合わせ次第ではできることが広がっていきます。
ぜひ手を動かしながらできることを増やしていってください!
この記事で少しでも皆さんのお役に立てれば幸いです!
忘れないうちにお気に入り登録もお願いします!
ありがとうございました!
コメントはお気軽に!
コメント一覧 (1件)
[…] この*はワイルドカードと言って、全ての文字に対応してくれます。 […]