InStr 関数
バリアント型 (内部処理形式 Long の Variant) の値を返します。ある文字列 (string1) の中から指定した文字列 (string2)
を検索し、最初に見つかった文字位置 (先頭からその位置までの文字数) を返す文字列処理関数です。
-
構文
-
InStr([start, ]string1, string2[, compare])
- Instr 関数の構文は、次の引数から構成されます。
-
指定項目 内容
-
start
省略可能です。検索の開始位置を表す数式を指定します。省略すると、先頭の文字から検索されます。引数 start に Null 値が含まれている場合、エラーが発生します。引数
compare を指定した場合は、start も指定する必要があります。
-
string1
必ず指定します。検索対象となる文字列式を指定します。
-
string2
必ず指定します。引数 string1 内で検索する文字列式を指定します。
-
compare
省略可能です。文字列比較の比較モードを指定する番号を設定します。引数 compare が Null 値の場合は、エラーが発生します。引数 compare
を指定した場合は、引数 start も指定する必要があります。引数 compare を省略すると、Option Compare ステートメントの設定に応じて、比較モードが決まります。ローカル固有の比較ルールを使用するには、有効なLCID
(LocaleID) を指定します。
-
設定値
-
引数 compare
の設定値は次のとおりです。
-
定数 値 説明
-
定数 |
値 |
説明 |
vbUseCompareOption |
-1 |
OptionCompareステートメントの設定を使用して比較を行います。 |
vbBinaryCompare |
0 |
バイナリモードの比較を行います。 |
vbTextCompare |
1 |
テキストモードの比較を行います。 |
vbDatabaseCompare |
2 |
MicrosoftAccessの場合のみ有効。データベースに格納されている設定に基づいて比較を行います。 |
-
戻り値
-
内容 |
値 |
string1 が長さ 0 の文字列 (") のとき |
0 |
string1 が Null 値のとき |
Null 値 |
string2 が長さ 0 の文字列 (") のとき |
start |
string2 が Null 値のとき |
Null 値 |
string2 が見つからないとき |
0 |
string2 が string1 内で見つかったとき |
見つかった文字列の位置 |
start の値が string1 の文字数を超えるとき |
0 |
-
解説
- 文字列をバイト データとして扱う場合は、InStrB 関数を使用します。InStrB 関数は検索結果をバイト位置 (先頭からその位置までのバイト数)
で返します。
InStr 関数の使用例
- 次の例は、InStr 関数を使って、ある文字列の中から指定した文字列を検索し、最初に見つかった位置を返します。
|
Option Explicit
Dim SearchString, SearchChar, MyPos
SearchString = "XXpXXpXXPXXP" ' 検索対象の文字列を定義します。
SearchChar = "P" ' "P" を検索します。
' 文字単位の比較を位置 4 から開始すると、6 が返されます。
MyPos = InStr(4, SearchString, SearchChar, 1)
' ビット単位の比較を位置 1 から開始すると、9 が返されます。
MyPos = InStr(1, SearchString, SearchChar, 0)
' 既定のビット単位の比較を行います(最後の引数を省略した場合)。
MyPos = InStr(SearchString, SearchChar) ' 9 を返します。
MyPos = InStr(1, SearchString, "W") ' 0 を返します。
'<モードの違い>
'┌─────────┬───┬────┬────┐
'│内容 │例 │バイナリ│テキスト│
'├─────────┼───┼────┼────┤
'│大文字/小文字 │A/a │異 │同 │
'│全角/半角 │A/A │異 │同 │
'│ひらがな/カタカナ │あ/ア │異 │同 │
'└─────────┴───┴────┴────┘
|
InStrRev 関数
ある文字列 (string1) の中から指定された文字列 (string2) を最後の文字位置から検索を開始し、最初に見つかった文字位置 (先頭からその位置までの文字数)
を返す文字列処理関数です。
-
構文
-
InstrRev(stringcheck, stringmatch[, start[, compare]])
- InstrRev 関数の構文は、次の名前付き引数から構成されます。
-
指定項目 説明
-
stringcheck
必ず指定します。検索先の文字列式を指定します。
-
stringmatch
必ず指定します。検索する文字列式を指定します。
-
start
省略可能です。各検索の開始位置を設定する数式を指定します。引数 start を省略すると -1 が使用され、最後の文字位置から検索を開始します。引数
start に Null 値が含まれると、エラーになります。
-
compare
省略可能です。文字列式を評価するときに使用する文字列比較のモードを表す数値を指定します。引数 compare を省略すると、バイナリ モードで比較が行われます。設定する値については、次の「設定値」を参照してください。
-
設定値
- 引数 compare の設定値は次のとおりです。
-
定数 値 説明
-
定数 |
値 |
説明 |
vbUseCompareOption |
-1 |
OptionCompareステートメントの設定を使用して比較を行います。 |
vbBinaryCompare |
0 |
バイナリモードの比較を行います。 |
vbTextCompare |
1 |
テキストモードの比較を行います。 |
vbDatabaseCompare |
2 |
MicrosoftAccessの場合のみ有効。データベースに格納されている設定に基づいて比較を行います。 |
-
戻り値
- InStrRev 関数の戻り値は次のとおりです。
-
内容 |
値 |
string1 が長さ 0 の文字列 (") のとき |
0 |
string1 が Null 値のとき |
Null 値 |
string2 が長さ 0 の文字列 (") のとき |
start |
string2 が Null 値のとき |
Null 値 |
string2 が見つからないとき |
0 |
string2 が string1 内で見つかったとき |
見つかった文字列の位置 |
start の値が string1 の文字数を超えるとき |
0 |
-
解説
- InstrRev関数の構文は、Instr関数の構文とは異なります。
|
|