InStr 関数InStr Function

ある文字列が別の文字列の中で最初に現れる位置を指定するVariantLong)を返します。Returns a Variant (Long) specifying the position of the first occurrence of one string within another.


InStr([ start ], string1, string2, [ compare ])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. 省略すると、最初の文字の位置から検索が start されます。If omitted, search begins at the first character position. startNull が含まれる場合、エラーが発生します。If start contains Null, an error occurs. _compare_が指定されている場合は、_start_引数が必要です。The start argument is required if compare is specified.
string1string1 必須です。Required. 検索元の文字列式です。String expression being searched.
string2string2 必須です。Required. 検索場所となる文字列式を指定します。String expression sought.
comparecompare 省略可能です。Optional. 文字列比較の種類を指定します。Specifies the type of string comparison. compareNullの場合、エラーが発生します。If compare is Null, an error occurs. compare が省略された場合、Option Compare 設定は比較のタイプを決定します。If compare is omitted, the Option Compare setting determines the type of comparison. ロケール固有のルールで比較するために有効な LCID (LocaleID) を指定します。Specify a valid LCID (LocaleID) to use locale-specific rules in the comparison.


compare 引数の設定値は以下のとおりです。The compare argument settings are:

定数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 は、ある文字列が別の文字列内で最初に発生する文字位置を返すのではなく、バイト位置を返します。Instead of returning the character position of the first occurrence of one string within another, InStrB returns the byte position.


この例では InStr 関数を使用し、ある文字列が別の文字列内で最初に発生する位置を返します。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.