Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » VBAのIf文で文字列を含むという条件を指定する-Like演算子・InStr関数

VBAのIf文で文字列を含むという条件を指定する-Like演算子・InStr関数

対象:Excel2003, Excel2007, Excel2010, Excel2013

「エクセル vba if 文字列 含む」
「vba if 文字列 一部一致」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがあります。

VBAの条件分岐文・If文で、ある文字列が含まれる場合、といった条件をどう指定するのかを探している方による検索です。

参考になりそうなコードをご紹介しておきます。

[スポンサードリンク]

Like演算子とワイルドカードを使ったサンプルマクロ

一つはLike演算子とワイルドカードを使った方法です。

以下のSubプロシージャを実行すると、アクティブセルに東京という文字列が含まれているときにメッセージボックスに○が表示されます。

Sub Like演算子で文字列が含まれているか判定する()
 If ActiveCell.Value Like "*東京*" Then
  MsgBox "○"
 Else
  MsgBox "×"
 End If
End Sub

上記のとおり、Like演算子とワイルドカードを使えば、指定した文字列を含むという条件を作れます。

InStr関数を使ったサンプルマクロ

ワイルドカードを組み合わせれば複雑な条件も作れますから、私は、上記のLike演算子とワイルドカードを使った方法をよく使いますが、関数を使っても文字列を含むという条件指定ができます。

以下のように、InStr関数を使っても、文字列を含むという条件指定ができます。

Sub 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関数

「条件分岐」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.