VBA入門】InStr関数で文字列を探す方法

InStr関数の構文

<コード>

<実行例>
VBA入門】InStr関数で文字列を探す方法

例では“東京特許許可局”という文字列の3文字目から”特許”という文字列が存在していることが分かります。
では、A1セルの値を“東京特許許可局許可局長”、findStrの値(検索文字)を“許可”へと変更した場合
どのような結果になるでしょうか。

<実行例>
VBA入門】InStr関数で文字列を探す方法

指定した文字列の中には“許可“という文字列が2か所存在しますが、結果は5文字目と表示されています。
つまり、InStr関数は文字列の1文字目から検索を開始して最初に検索文字が見つかった位置を返しているのです。

検索文字が含まれていない場合

検索対象に検索文字が含まれていない場合、InStr関数は0を返します。
というわけで、if文を使用すると検索文字がヒットしないパターンの処理を行うことができます。

<コード>

<実行例>
VBA入門】InStr関数で文字列を探す方法

InStr関数とLeft、Right関数を組み合わせた例

InStr関数は他の関数と組み合わせると非常に便利な関数です。
以下の例では@マークの前後で文字列を分割しています。

<コード>

<実行例>
VBA入門】InStr関数で文字列を探す方法

@より前の文字列を取り出す場合にはLeft関数を使用します。
指定した文字列の左から@の一文字前までを抜き出すため、InStrで取得した@の位置より
マイナス1の文字数を指定します。

そして@より後の文字列を取り出す場合はRignt関数(Mid関数でも可)を使用します。
指定した文字列の右から(全文字数[email protected]までの文字数)分を抜き出すため
Len関数(全文字数を取得する関数)も組み合わせています。

まとめ

InStr関数を使用すると指定した文字列の中に含まれている検索文字の位置を調べることができます。
さらに、そこで取得した情報を他の関数と組み合わせると、ファイルのパスからファイル名だけを
抜き出す等の作業に非常に便利です。
ぜひInStr関数を取り入れてより複雑な処理をするコードの作成に役立ててください。

【おすすめ記事】
習得必須!VBAを教われるスクールBEST5
VBAの本・参考書の評判
業務効率をアップする!コピペで動くVBA5選
【VBA上達事例⑫】コツはコードの丸暗記!使ったVBAの書籍は?