Instr関数

別の文字列内で、ある文字列が最初に出現する位置を戻します。

構文

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

引数:

  • Start: オプション。各検索の開始位置を設定する数値式。省略すると、検索は最初の文字位置から開始されます。startにNullが含まれる場合、エラーが発生します。compareが指定されている場合、start引数は必須です。
  • string1: 必須。検索対象の文字列式。
  • string2: 必須。検索する文字列式。
  • Compare: オプション。部分文字列の評価時に使用する比較の種類を示す数値。値については「設定」の項を参照してください。省略すると、バイナリ比較が実行されます。
  • 設定: compare引数には次の値を指定できます。

    表11-15 比較定数および説明

    定数 説明
    vbBinaryCompare 0 バイナリ比較を実行します
    vbTextCompare 1 テキスト比較を実行します

戻り値

InStr関数は、次の値を戻します:

表11-16 Instr関数の戻り値

次の場合 Instの戻り値
string1が長さゼロ 0
string2が長さゼロ Start
string2がない 0
string1内でstring2を検出 一致が見つかった位置。
start > Len(string2) 0

備考

次の例では、InStrを使用して文字列を検索します:

例1:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.  
SearchChar = "P"   ' Search for "P".
MyPos = Instr(SearchString, SearchChar)   ' Comparison is binary by default (last argument is omitted). 
' Output: 9

例2:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.
SearchChar = "P"   ' Search for "P".
MyPos = Instr(1, SearchString, SearchChar)   
' Comparison is binary by default (last argument is omitted)
' Default Comparison starting at the first character
' Output: 9    

例3:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.
SearchChar = "P"   ' Search for "P".
MyPos = Instr(4, SearchString, SearchChar, 1)   ' A textual comparison starting at position 4.
'Output: 6
MyPos = Instr(1, SearchString, SearchChar, 0)   ' A binary comparison starting at position 1. 
'Output: 9

例4:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"   ' String to search in.
SearchChar = "P"   ' Search for "P".
MyPos = Instr(1, SearchString, "W")   ' A binary comparison starting at position 1.
'Output: 0 ("W" is not found).