Excel-VBA プログラミング

【VBA】特定文字列を含む値を検索・判定しよう!InstrとLikeの使い方

 

VBAで特定文字列を含む値を検索、または判定(存在チェック)するのには、「Instr関数」と「Like演算子」を活用する2つの方法があります。

そこで、VBAによる特定文字を含む記述方法を2つの方法で解説していきます。

 

 

VBAによる特定文字を含む場合の2つの検索・判定方法

 

VBAによる特定文字を含む場合の検索・判断チェックを行う際には2つの方法があります。

<特定文字を含む場合の検索・判定ができる2つの構文>

  • Instr関数
  • Like演算子

 

この2つの記述方法でその値を含むかどうかを判断することが可能です。

 

Instr関数について

それではまずInstrに構文から覚えておきましょう。

Instr関数の構文

【記述方法】

Instr (文字列 , 検索文字列)

戻り値はVariant型

 

 

引数使い方詳細
文字列(必須)検索したい元のデータ
検索文字列(必須)検索する文字を指定する「*」不要:(全あいまい検索)
戻り値該当した検索文字位置が返ります

検索文字にワイルドカード(*)の記述は不要。全てあいまい検索ですので、その検索文字の存在を確認できるのがInstr関数です。

 

Instr関数の使い方

それでは、実際に記述を例にして使い方を理解していきましょう。

 

 

「a」を検索していますので、戻り値として「varData」の変数に返ってくるのは、aの文字位置である「4」が入ってきます。

これによって、Instr関数は、「あいまい検索」であることがわかりますね。

但し、Instr関数一つで複数文字の検索はできません。複数文字の検索を行いたい場合には、Instr関数とIF文を併用しながら、存在しているかを確認していきます。

 

 

 

Like演算子とは

Like演算子とは、「文字列比較において、部分一致や文字列比較を行う時に使用するのに用います。」基本的に「=」と考え方は同じですが、=のみならず、あいまい検索として利用する際に区別されます。

 

【Like演算子の記述方法】

If A Like B then

 

 

このように、If文で記述する「=」の部分に「Like」を記述して、「AとB」のあいまい検索を行っていきます。

 

【Like演算子の定義】

引数使い方詳細
文字列(必須)A:検索したい元のデータ
検索文字列(必須)B:検索する文字を指定する「*」が必要
戻り値なし

 

Like演算子の構文

続いて、Like演算子の使い方についてみていきましょう。まずはシンプルな構文は下記のようにして使用します。

 

 

但し、この構文では、Likeは「=」と同じ意味にしかなりません。

Likeはあいまい検索を意味するので、「ワイルドカード(*)」を使用してあいまい検索にしていきます。

 

 

Like演算子の利用機能について

Like演算子の機能は少し特殊です。というのも、Like演算子で使用できる使用文字・構文があるので、合わせて覚えておくと効果的です。

 

記号詳細利用事例結果
*(ワイルドカード)その値を含む*あ*あい・しあい
#数値[0-9]
任意の1文字
[charlist]charlistに指定した文字の中の1文字[0-9],[A-Z][0,1,2・・・9],[A,B,C・・・Z]
[!charlist]charlistに指定した文字に含まれない1文字[!A-X]Y,Z
Not LikeLikeの否定文として活用

 

 

Like演算子のその他使い方事例の紹介

Like演算子のその他使い方事例のその他の使い方の事例についてもいくつかご紹介していきましょう。

 

Like演算子事例1

 

Like演算子事例2

 

Like演算子事例3

 

 

まとめ

このように、VBAで特定文字列の検索・判定存在チェックを行う際には、Instr関数やLike演算子のどちらを利用しても間違えではありません。

Instr関数やLike演算子の機能を理解して、特定文字列の検索や制御文の作成に上手に活用していきましょう。

 

 


→当ブログをフォローして頂けると励みになります。 


大人気自宅飲み放題!多彩なビールをご自宅で楽しめる【DREAM BEER】

楽天おすすめ商品はこちら

  • この記事を書いた人
  • 最新記事

みやさん

【サイト運営者・著者】みやさん 【実績】ライター歴7年 ブログ歴3年⇒2万PV推移中 【実務】現役プログラマー|【発信内容】▶副業やブログの始め方 ▶ライターとしてのノウハウ ▶生活の有益情報を発信しています。皆様の生活改善にご利用ください。

Copyright© 副業ケアネット , 2022 All Rights Reserved Powered by AFFINGER5.