InStr 関数

ある文字列の中から指定した文字列が最初に見つかった位置をバリアント型 (内部処理型 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 コミュニティの他のメンバーと一緒に、Community Translation Framework (CTF) を使ったこの記事の改善にご協力ください。記事内の文章にマウス ポインターを合わせて、CTF ウィジェットの [翻訳を改善します] をクリックしてください。CTF の詳細については、ここ をクリックしてください。CTF を使用すると弊社の サービス利用規約 に同意したことになります。

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

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

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

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×