ある文字列の中から指定した文字列が最初に見つかった位置をバリアント型 (内部処理型 Long の Variant) で返します。
構文
InStr ([start, ] string1, string2 [, compare ] )
InStr 関数の構文には、次の引数があります。
引数 | 説明 |
---|---|
start |
省略可能。 検索の開始位置を設定する数式。 省略した場合、先頭の文字から検索されます。 start に Null が含まれる場合、エラーが発生します。 compare を指定した場合、start は必須となります。 |
string1 |
必須。 検索場所となる文字列式を指定します。 |
string2 |
必須。 検索場所となる文字列式を指定します。 |
compare |
省略可能。 文字列比較の種類を指定します。 compare が Null の場合、エラーが発生します。 compare を省略した場合、OptionCompare 設定により、比較の種類が決定されます。 ロケール固有のルールで比較するために有効な LCID (LocaleID) を指定します。 |
ヒント: Access 2010 では、式ビルダーで IntelliSense を使用できるので、式に必要な引数を確認することができます。
設定
compare 引数の設定:
定数 | 値 | 説明 |
---|---|---|
vbUseCompareOption |
-1 |
Option Compare ステートメントの設定を使用して、比較を実行します。 |
vbBinaryCompare |
0 |
バイナリの比較を実行します。 |
vbTextCompare |
1 |
テキストの比較を実行します。 |
vbDatabaseCompare |
2 |
Microsoft Office Access 2007 のみ。 データベース内の情報に基づいて比較を実行します。 |
戻り値
条件 | InStr により返される値 |
---|---|
string1 がゼロ長 |
0 |
string1 が Null |
Null |
string2 がゼロ長 |
start |
string2 が Null |
Null |
string2 が見つからない |
0 |
string2 が string1 内で見つかる |
検索が見つかった位置 |
start > string2 |
0 |
解説
InStrB 関数は、文字列に含まれるバイト データと共に使用されます。 InStrB は、ある文字列が別の文字列内で最初に発生する文字位置を返すのではなく、バイト位置を返します。
例
式で InStr 関数を使用する 式を使用できるあらゆる箇所で InStr を使用できます。 たとえば、IP アドレスが含まれるフィールドで最初のピリオド (.) の位置を見つける場合、次のように InStr を使用してそれを見つけることができます。
InStr(1,[IPAddress],".")
InStr 関数は IPAddress フィールドの各値を調べ、最初のピリオドの位置を返します。 そのため、IP アドレスの最初の部分が 10.の場合、この関数は値 3 を返します。
その後、InStr 関数の出力で動作する他の関数を次のように使用し、最初のピリオドの前にある IP アドレス部分を抽出できます。
Left([IPAddress],(InStr(1,[IPAddress],".")-1))
この例では、 InStr (1, [IPAddress], ".")最初のピリオドの位置を返します。 1を減算すると、最初のピリオドの前の文字数が決定されます (この場合は 2)。 次に、 left関数は、IPAddress フィールドの左側の部分からその数の文字を抽出し、値10を返します。
VBA コードで InStr を使用する
注: 次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。 VBA の使用方法の詳細については、[検索] の横にあるドロップダウン リストで [開発者用リファレンス] を選び、検索ボックスに検索する用語を入力します。
この例では InStr 関数を使用し、ある文字列が別の文字列内で最初に発生する位置を返します。
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar) ' Returns 9.
MyPos = Instr(1, SearchString, "W") ' Returns 0.
注: このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。 私たちの目的は、このコンテンツがお客様の役に立つようにすることです。 情報が役に立ったかどうか、ご意見をお寄せください。 参考までに、こちらから英語の記事をお読みいただけます。