InStr 関数

ある文字列が別の文字列の中で最初に現れる位置を指定する VariantLong)を返します。

注意

複数のプラットフォーム間で Office エクスペリエンスを拡張するソリューションを開発することに関心がありますか? 新しい Office アドイン モデルを参照してください。 Office アドインは、VSTO アドインやソリューションに比べてフットプリントが小さく、HTML5、JavaScript、CSS3、XML などのほぼすべてのWeb プログラミング テクノロジーを使用して構築できます。

構文

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

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

パーツ 説明
start 省略可能。 それぞれの検索の開始位置を設定する数値式です。 省略すると、最初の文字の位置から検索が start されます。 startNull が含まれる場合、エラーが発生します。 compare が指定されている場合は、start 引数が必要です。
string1 必須です。 検索元の文字列式です。
string2 必須です。 検索場所となる文字列式を指定します。
compare 省略可能です。 文字列比較の種類を指定します。 compareNull の場合、エラーが発生します。 compare が省略された場合、Option Compare 設定は比較のタイプを決定します。 ロケール固有のルールで比較するために有効な LCID (LocaleID) を指定します。

設定

compare 引数の設定値は以下のとおりです。

定数 説明
vbUseCompareOption -1 Option Compare ステートメントの設定を使用して比較を実行します。
vbBinaryCompare 0 バイナリ比較を実行します。
vbTextCompare 1 テキスト比較を実行します。
vbDatabaseCompare 2 Microsoft Access のみ。 データベース内の情報に基づいて比較を実行します。

戻り値

条件 InStr により返される値
string1 の長さが 0 0
string1Null Null
string2 の長さが 0 start
string2Null Null
string2 が見つからない 0
string2string1 内で見つかった 一致が見つかった位置
start > string2 0

注釈

InStrB 関数は、文字列に含まれるバイト データと共に使用されます。 InStrB は、ある文字列が別の文字列内で最初に発生する文字位置を返すのではなく、バイト位置を返します。

この例では 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.

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。