InStr関数 …文字列から検索文字列を検索する

[Access 2016/2013/2010/2007]

AccessのInStr関数の使い方を紹介します。

スポンサーリンク

書式

InStr(開始位置, 文字列, 検索文字列, 比較モード)

文字列から検索文字列を検索し、最初に見つかった文字位置(先頭からその位置までの文字数)を返します。見つからなかった場合は、0を返します。

戻り値の型:バリアント型 (内部処理形式 Long の Variant)

引数

引数 指定 説明
開始位置 start 省略可 検索の開始位置を指定。省略した場合は、1文字目から検索を開始する。比較モードを指定した場合、開始位置は省略不可
文字列 string1 必須 検索対象となる文字列を指定
検索文字列 string2 必須 検索のキーワードとなる文字列を指定
比較モード compare 省略可 文字列の比較モードを 表A の値で指定。クエリやフォームでの使用で省略した場合は「2」、モジュール(VBA)での使用で省略した場合は「-1」が指定されたものと見なされる

表A 引数 比較モード の設定値

定数 説明
-1 vbUseCompareOption Option Compareステートメントの設定にしたがう(Option Compareステートメントの設定がない場合はバイナリモード)
0 vbBinaryCompare バイナリモードで比較する(全角/半角、大文字/小文字、ひらがな/カタカナを区別する)
1 vbTextCompare テキストモードで比較する(全角/半角、大文字/小文字、ひらがな/カタカナを区別しない)
2 vbDatabaseCompare Accessの設定にしたがう(Accessの設定の既定値はテキストモード)

使用例

使用例 戻り値 説明
InStr("ざるそば", "そば") 3 「そば」は3文字目
InStr("ざるそば", "うどん") 0 「うどん」は見つからない
InStr(1, "ざるそば", "ソバ", 0) 0 バイナリモードでは「そば」と「ソバ」は異なる
InStr(1, "ざるそば", "ソバ", 1) 3 テキストモードでは「そば」と「ソバ」は同じ
InStr(3, "AbcAbcAbc", "Abc") 4 3文字目以降で最初に見つかった「Abc」の位置
InStr(10, "AbcAbcAbc", "Abc") 0 開始位置文字列の文字数を超えたときは0
InStr("", "Abc") 0 文字列が長さ0の文字列「""」の場合、戻り値は0
InStr(Null, "Abc") Null 文字列がNull値の場合、戻り値はNull値
InStr("AbcAbcAbc", "") 1 検索文字列が長さ0の文字列「""」の場合、戻り値は開始位置
InStr("AbcAbcAbc", Null) Null 検索文字列がNull値の場合、戻り値はNull値

実践例

以下のページを参照してください。

スポンサーリンク

関連記事