Mutable_Yunの業務改善ブログ

VBA勉強中の非エンジニア会社員向けのブログです。業務改善についても触れています。

VBA 95%まかなえるInstr関数の使い方を端的に解説する

VBAのInstr関数の使い方を端的に解説します。

目次

さっと書き方が思い出したい方のための最低限の文法

あなたが知りたいのはこれです。

Instr関数の最低限の文法
Instr関数の最低限の文法で必要な引数は2つだけ

本当は色々あるけど95%位はこれでいけるサンプル

この関数は色々と解説するより、結果を見た方が早いのでいきなりサンプルコードです。

Sub Instr関数を使う()

    MsgBox InStr("あいうえお", "え")
    
End Sub

MsgBox InStr("あいうえお", "え")の実行結果
MsgBox InStr("あいうえお", "え")の実行結果は4

ずばり、Instr関数は何文字目にその文字が含まれているのかを返します。複数文字だと、その複数文字の塊がある場合を返します。

Sub Instr関数を使う2()

    MsgBox InStr("あいうえお", "うえお")
    
End Sub

MsgBox InStr("あいうえお", "うえお")の実行結果
MsgBox InStr("あいうえお", "うえお")の実行結果は3

存在しない文字や文字列の場合は、0を返します。

Sub Instr関数を使う3()

    MsgBox InStr("あいうえお", "うお")
    
End Sub

「う」も「お」もありますが、「うお」という文字列は含まれていません。この場合、実行結果は0を返します。

MsgBox InStr("あいうえお", "うお")の実行結果
MsgBox InStr("あいうえお", "うお")の実行結果は0

応用的な使い方

含まれていないときはInstr関数の戻り値が0かどうかによって、その文字列が含まれているかを知ることができます。以前、「*」というワイルドカードを使ってなんとか、その文字列が含まれているかどうかを調べようとしている方がいましたが、Instr関数を使うのが吉ですね!

これを応用すると、様々な過去実績データが保存されているフォルダから○○という文字列を含むファイルだけを抽出する、といった事が可能ですよ!

フォルダ内をループで検索する技については別途解説しますね。

質問はコメント欄にどうぞ!