InStr 関数InStr function

特定の文字列が別の文字列内で最初に見つかった位置を指定する Variant (Long) を返します。Returns a Variant (Long) specifying the position of the first occurrence of one string within another.


InStr([スタート]文字列 1文字列 2、[比較])InStr([ start ], string1, string2, [ compare ])

InStr 関数の構文には、次の引数があります。The InStr function syntax has these arguments:

指定項目Part 説明Description
startstart 省略可能。Optional. それぞれの検索の開始位置を設定する数値式です。Numeric expression that sets the starting position for each search. 省略すると、最初の文字位置から検索を開始します。If omitted, search begins at the first character position. startNull が含まれる場合、エラーが発生します。If start contains Null, an error occurs. _比較_を指定した場合は、引数_start_を必要があります。The start argument is required if compare is specified.
文字列 1string1 必須です。Required. 検索元の文字列式です。String expression being searched.
文字列 2string2 必須。Required. 検索する文字列式です。String expression sought.
comparecompare 省略可能。Optional. 文字列比較の種類を指定します。Specifies the type of string comparison. _比較_がNullの場合エラーが発生します。If compare is Null, an error occurs. _比較_を省略すると、 Option Compare の設定は、比較の種類を決定します。If compare is omitted, the Option Compare setting determines the type of comparison. 有効な LCID (ロケール Id) の比較でロケール固有の規則を使用するを指定します。Specify a valid LCID (LocaleID) to use locale-specific rules in the comparison.


_比較_引数の設定値は次のとおりです。The compare argument settings are as follows.

定数Constant Value 説明Description
vbUseCompareOptionvbUseCompareOption -1-1 Option Compare ステートメントの設定を使用して比較を実行します。Performs a comparison by using the setting of the Option Compare statement.
vbBinaryComparevbBinaryCompare 00 バイナリ比較を実行します。Performs a binary comparison.
vbTextComparevbTextCompare 11 テキスト比較を実行します。Performs a textual comparison.
vbDatabaseComparevbDatabaseCompare 22 Microsoft Access のみ。Microsoft Access only. データベース内の情報に基づいて比較を実行します。Performs a comparison based on information in your database.

戻り値Return values

条件If InStr の戻り値InStr returns
string1 の長さが 0string1 is zero-length 00
string1Nullstring1 is Null NullNull
string2 の長さが 0string2 is zero-length startstart
string2Nullstring2 is Null NullNull
string2 が見つからないstring2 is not found 00
string2string1 内で見つかったstring2 is found within string1 見つかった位置Position at which match is found
start > string2start > string2 00


InStrB関数は、文字列に含まれるバイト データに使用されます。The InStrB function is used with byte data contained in a string. InStrBは、別の 1 つの文字列の最初に見つかった文字位置を返すのではなく、バイト位置を返します。Instead of returning the character position of the first occurrence of one string within another, InStrB returns the byte position.


この例では、 InStr関数を使用して、別の 1 つの文字列の最初に見つかった位置を返します。This example uses the InStr function to return the position of the first occurrence of one string within another.

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.

関連項目See also

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.