「エクセル vba if 文字列 含む」
「vba if 文字列 一部一致」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあります。
VBAの条件分岐文・If文で、ある文字列が含まれる場合、といった条件をどう指定するのかを探している方による検索です。
参考になりそうなコードをご紹介しておきます。
Like演算子とワイルドカードを使ったサンプルマクロ
一つはLike演算子とワイルドカードを使った方法です。
以下のSubプロシージャを実行すると、アクティブセルに東京という文字列が含まれているときにメッセージボックスに○が表示されます。
If ActiveCell.Value Like "*東京*" Then
MsgBox "○"
Else
MsgBox "×"
End If
End Sub
上記のとおり、Like演算子とワイルドカードを使えば、指定した文字列を含むという条件を作れます。
InStr関数を使ったサンプルマクロ
ワイルドカードを組み合わせれば複雑な条件も作れますから、私は、上記のLike演算子とワイルドカードを使った方法をよく使いますが、関数を使っても文字列を含むという条件指定ができます。
以下のように、InStr関数を使っても、文字列を含むという条件指定ができます。
If InStr(ActiveCell.Value, "東京") <> 0 Then
MsgBox "○"
Else
MsgBox "×"
End If
End Sub
InStr関数は、ある文字列の中から、指定した文字列を検索して、最初に見つかった位置を返す関数です。見つからなかった場合は「0」を返してきます。見つからなかったときに「0」を返すという特長を利用した方法です。
If文の場合はLike演算子・InStr関数いずれも使えますが、Select Case文の場合は書き方を少し工夫しないとLike演算子を使えませんから、InStr関数を使う方法を知っておくのは有益なことです。
最終更新日時:2019-01-03 10:24
Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAのIf文で文字列を含むという条件を指定する-Like演算子・InStr関数