教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 関数】Instr関数で文字列を検索するにはどうすればいいの?使い方を教えて!

f:id:m_kbou:20200420121525p:plain

 

 

構文

記述方法は以下の通りとなります。

InStr(”[ 対象となる文字列]”, ”[検索する文字]”)

[説明]:

ある文字列の中から指定の文字位置を返します。

[対象となる文字列] 任意の文字列を記述します。
※「”」(ダブルクォーテーション)で囲みます。
[検索する文字] [対象となる文字列]から検索する文字を記述します。
※「”」(ダブルクォーテーション)で囲みます。

[記述例]:

InStr("ABCDEF", "B")

 

使い方

使い方について具体的に説明します。

検索する文字列が対象文字列に存在する場合

検索する文字列が存在する場合について説明します。

[プログラミング例]:

Sub サンプル()

  MsgBox InStr("ABCDEF", "B")

End Sub

内容は、「対象となる文字列:ABCDEFの中を検索する文字列:Bで検索し、存在した場合にはその位置をMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210222120724p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210412121140p:plain

②結果は以下の様に表示されます。”B”が文字列の左から2番目に存在するため、MsgBoxで「2」が表示されます。

f:id:m_kbou:20210412121152p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

検索する文字列が対象文字列に存在する場合についての説明は以上です。

 

検索する文字列が対象文字列に存在しない場合

検索する文字列が存在しない場合について説明します。 

[プログラミング例①]:

Sub サンプル()

  MsgBox InStr("ABCDEF", "Z")

End Sub

内容は、「対象となる文字列:ABCDEFの中を検索する文字列:Zで検索し、存在した場合にはその位置をMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210222121131p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例①]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210412121310p:plain

②結果は以下の様に表示されます。”Z”は文字列の中に存在しないため、MsgBoxで「0」が表示されます。

f:id:m_kbou:20210412121322p:plain

[サンプル①]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

[プログラミング例②]:

Sub サンプル()

  MsgBox InStr("ABCDEF", "c")

End Sub

内容は、「対象となる文字列:ABCDEFの中を検索する文字列:c(小文字)で検索し、存在した場合にはその位置をMsgBoxで表示して下さい。」との意味になります。

f:id:m_kbou:20210222121424p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例②]:

①<実行>ボタンをクリックします。

f:id:m_kbou:20210412121409p:plain

②結果は以下の様に表示されます。小文字の”c”は文字列の中に存在しないため、MsgBoxで「0」が表示されます。(※Instr関数は大文字・小文字の判別も行うため、文字列中の大文字”C”とは別物として判断されます。)

f:id:m_kbou:20210412121421p:plain

[サンプル②]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

検索する文字列が対象文字列に存在しない場合の説明は以上です。

 

プログラミング(サンプル)

プログラミング事例を紹介します。

www.osiete-excelvba.work

 

おわりに

今回はInstr関数の使い方について説明しました。InStr関数を使用すると対象となる文字列の中に含まれる検索文字の位置を調べる事ができます。また、検索結果を元に他の関数と組み合わせると、更に複雑な処理を実行する事も可能です。是非InStr関数を取り入れて、プログラムコードの簡素化に役立てて下さい。また、類似の関数にはLeft関数Right関数Mid関数もありますので、合わせて覚えて下さい。