引数String1で指定した文字列の中からstring2で指定した文字列を前方から検索
し、検索文字列が最初に見つかった場所を返します。引数Compareで指定する比較
モードは次の一覧のとおりです。
・引数Compareで指定する比較モードを表す定数一覧(VbCompareMethod)
定数 値 説明
vbUseCompareOption -1 Option Compare ステートメントの設定を使用
して比較
vbBinaryCompare 0 バイナリ モードの比較
vbTextCompare 1 テキスト モードの比較
vbDatabaseCompare 2 Microsoft Access の場合のみ有効。データベース
に格納されている設定に基づいて比較
なお、InStr関数の戻り値は次の表のとおりです。
・InStr関数の戻り値一覧
内容 値
String1が長さ0の文字列("")のとき 0
String1がNull値のとき Null 値
String2が長さ0の文字列("")のとき start
String2がNull値のとき Null 値
String2が見つからないとき 0
String2がString1内で見つかったとき 見つかった文字列の位置
Startの値がString1の文字数を超えるとき 0
構文 InStr(Start, String1, String2, Compare)
InStrB(Start, String1, String2, Compare)
設定項目 内容
Start 検索開始位置を指定。省略時は1 [省略可能]
String1 検索対象の文字列を指定 [省略不可]
String2 検索文字列を指定 [省略不可]
Compare 文字列比較のモード指定(一覧参照) [省略可能]
次のサンプルは、メールアドレスに含まれる「@」の位置をInStr関数で検索し、
その前後のユーザー名、ドメイン名を取り出します。
●サンプル●
Sub InStrSamp1()
Dim myStr As String
Dim n As Integer
'---変数myStrにメールアドレス設定
myStr = "Kuriyama@projecta.co.jp"
'---「@」の位置を取得
n = InStr(myStr, "@")
MsgBox "メールアドレス" & myStr & "の" & Chr(13) & Chr(13) & _
"ユーザー名 : " & Left(myStr, n - 1) & Chr(13) & _
"ドメイン名 : " & Mid(myStr, n + 1)
End Sub
●ポイント●
比較モードのバイナリモードとテキストモードの違いは下の一覧のとおり
です。Excel2000VBAの既定ではバイナリモードが使用されます。
・バイナリモードとテキストモードの違い
内容 例 バイナリモード テキストモード
大文字と小文字 「ABCDE」と「abcde」 異なる文字列 同じ文字列
全角と半角 「ABCDE」と「ABCDE」 異なる文字列 同じ文字列
ひらがなとカタカナ 「あいうえお」と「アイウエオ」異なる文字列 同じ文字列
|