VBA関数Instr関数

Instr関数
Instr

VBA関数 59回

文字列が、対象文のどこにあるのか探すInstr関数

エクセルで文字列を扱うときに、その文字列の中に特定の文字が入っているかどうか、またその文字は何文字目にあるのかということを知りたい場合があります。
そのような時に役に立つのがInStr関数です。

Instr関数構文

InStr([start, ]string1, string2[, compare])

InStr関数には引数が四つありますが、最初の引数startと最後の4番目の引数compareは省略が可能です。
引数startで、開始位置を表す数を指定します。
引数string1で、対象となる文字列を指定します。
引数string2で、検索する文字列を指定します。
引数compareで、大文字と小文字を区別するか指定できます。
この場合引数startも指定します。


Instr 関数構文

Instr関数の使用例

1. この例では検索文字列に、 「埼玉県大宮市緑区」と指定し、その中で検索したい語を「県」としています。
マクロを実行すると戻り値として3を取得します。

Sub vbfunc_Instr()
    Range("D2").Value = InStr("埼玉県大宮市緑区", "県")
End Sub

Instr1

InStr関数で検索文字が見つからなかった場合

2.検索したい文字列が、対象文字列内になかった場合には、エラーではなく、戻り値として0を返します。

Sub vbfunc_Instr2()
    Range("D3").Value = InStr("埼玉県大宮市緑区", "都")
    If InStr("埼玉県大宮市緑区", "都") = 0 Then
        MsgBox "対象文字列に検索語がありません。"
    End If
End Sub

Instr2

こちらもおすすめ