【これで解決】Like演算子を使った文字列を判定する方法!【Excel VBA】

こんにちは!『ルウちゃんのExcel Labo』管理人の@rouxchanblogです!

今回はこのような悩みについて解説します。

ルウちゃん

セル内に特定の文字列を含むか判定したい!
どうやってやればいいの?

この記事でわかるようになること
  1. 特定の文字列を含むか判定する方法
  2. Like演算子の活用方法
  3. ワイルドカードの使い方
目次

文字列を判定する方法

早速結論ですが、特定の文字列を含むか判定するには「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
Trueの場合
Falseの場合

このように値1と値2を比較して同じ場合はtrue、違う場合はFalseを返してくれます。

ワイルドカードとは

ワイルドカードとは色々なパターンごとに一致する形を取れる文字列になります。

例えば、「#」は0〜9までの半角数字と一致する形です。

今回使った「*」は文字数制限無しのすべてに一致する形になれる文字列です。

*×*←のように判定したい文字列を「*」で挟む

ポケモンで例えるとメタモンみたいな存在です笑

ほかにもワイルドカードには種類がありますので下記の表を参考にしてください!

スクロールできます
文字説明
?任意の1文字
*0文字以上の文字
#0~9の半角数字
[charlist]charlistに含まれる全角または半角の1文字
[!charlist]charlistに含まれない全角または半角の1文字
引用:SAMURAI ENGINEER

このワイルドカードを活用することで文字列の中に特定の文字列があるかを判定することができるのです!

まとめ

今回は「Like演算子」と「ワイルドカード」を組み合わせて特定の文字列を判定する処理を見ていきました。

このように組み合わせ次第ではできることが広がっていきます。

ぜひ手を動かしながらできることを増やしていってください!

この記事で少しでも皆さんのお役に立てれば幸いです!

忘れないうちにお気に入り登録もお願いします!

ありがとうございました!

/// お得な情報 ///

すぐに使えて便利なテクニックが650個も手に入る!

気になる人は今すぐクリック!!

 

目次