ある文字列の中から指定した文字列が最初に見つかった位置をバリアント型 (内部処理型 LongVariant) で返します。

例を参照する

構文

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.

文字列関数とその使い方

ヘルプを表示

スキルを磨く

トレーニングの探索 >

新機能を最初に入手

Microsoft Insider に参加する >

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

ご意見をいただきありがとうございます。

×