メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

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

例を参照する

構文

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

InStr 関数の構文には、次の引数があります。

引数

説明

start

省略可能。 検索の開始位置を設定する数式。 省略した場合、先頭の文字から検索されます。 start に Null が含まれる場合、エラーが発生します。 compare を指定した場合、start は必須となります。

string1

必須。 検索場所となる文字列式を指定します。

string2

必須。 検索場所となる文字列式を指定します。

compare

省略可能。 文字列比較の種類を指定します。 compare が Null の場合、エラーが発生します。 compare を省略した場合、OptionCompare 設定により、比較の種類が決定されます。 ロケール固有のルールで比較するために有効な LCID (LocaleID) を指定します。

ヒント: 式ビルダーには 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) モジュールでのこの関数の使用方法を示しています。

この例では 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 の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×