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

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

対象:Excel2003, Excel2007, Excel2010, Excel2013

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

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

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

[スポンサードリンク]

Like演算子とワイルドカード

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


▼文字列が含まれるかどうかの判定を行うマクロ
※アクティブセルに東京という文字列が含まれているときにメッセージボックスに○を表示する例
Sub Like演算子で文字列が含まれているか判定する()

 If ActiveCell.Value Like "*東京*" Then
  MsgBox "○"
 Else
  MsgBox "×"
 End If

End Sub

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

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

InStr関数

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関数を使う方法を知っておくのは有益なことです。

[スポンサードリンク]

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

TrackBack:3

TrackBack URL
条件に合致した行を削除するマクロ from インストラクターのネタ帳
ワイルドカードとOr演算子を使って条件を指定して、条件に合致した行を削除するExcel(エクセル)マクロをご紹介しています。
VBAのIf文で改行を含むか判定する-InStr関数 from インストラクターのネタ帳
文字列の中に改行コードが含まれているかどうかを判定するInStr関数を使ったマクロと、Mid関数で一文字ずつ取り出してチェックするマクロをご紹介しています。
VBAのSelect CaseでLikeを使ったあいまい条件の判定を行うには from インストラクターのネタ帳
対象:Excel2007, Excel2010, Excel2013, Win...
[スポンサードリンク]

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

「VBA関数」の記事一覧

検索

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

.