Access InStrB関数は文字列から指定した文字列を検索し、最初に見つかった文字位置をバイト数で返す関数です。
■ 構文
InStrB([start, ]string1, string2[, compare])
■ 引数
start: (省略可) 検索の開始位置を数式で指定します。省略すると、先頭の文字から検索します。
string1: (必須) 検索対象の文字列を指定します。
string2: (必須) 検索する文字列を指定します。
compare: (省略可) 文字列の比較モードを指定する番号を設定します。
指定した場合は、引数startも指定する必要があります
省略すると、Option Compareステートメントの設定に応じて、比較モードが決まります
※.INSTR関数と異なり、文字列をバイトデータとして扱います。
compareの定数
定数 値 説明
vbUseCompareOption :(-1) Option Compareステートメントの設定を使用して比較を行います。
vbBinaryCompare :(0) バイナリモードで比較を行います。
vbTextCompare :(1) テキストモードで比較を行います。
vbDatabaseCompare :(2) Microsoft Access の場合のみ有効。データベースに格納されている設定に基づいて比較を行います。
■ 戻り値
- 0 : string1が長さ0の文字列 ("")
- Null値 : string1がNull値
- start : string2が長さ0の文字列 ("")
- Null値 : string2がNull値
- 0 : string2が見つからない
- 見つかった文字列のバイト位置 : string2 がstring1内で見つかったとき
- 0 : startのがstring1の文字数を超えるとき
■ Access実行画面
「INSTR実行」 : 検索対象文から検索する文字を検索し、検索結果に表示します。
「INSTRB実行」 : 検索対象文から検索する文字を検索し、検索結果にバイト数を表示します。
■ Access VBA 実行コード
Option Compare Database
Private Sub Form_Load()
Me!テキスト0.SetFocus
Me!テキスト0.Text = "Access関数 Instr: 指定した文字が何文字目にあるかを検索する関数"
Me!テキスト2.SetFocus
Me!テキスト2.Text = "文字"
End Sub
Private Sub コマンド0_Click()
Dim ln1 As Integer
Dim s1 As String
Dim s2 As String
Me!テキスト0.SetFocus
s1 = Me!テキスト0.Text
Me!テキスト2.SetFocus
s2 = Me!テキスト2.Text
ln1 = InStrB(1, s1, s2)
Me!テキスト1.SetFocus
Me!テキスト1.Text = ln1
End Sub
Private Sub コマンド5_Click()
Dim ln1 As Integer
Dim s1 As String
Dim s2 As String
Me!テキスト0.SetFocus
s1 = Me!テキスト0.Text
Me!テキスト2.SetFocus
s2 = Me!テキスト2.Text
ln1 = InStr(1, s1, s2)
Me!テキスト6.SetFocus
Me!テキスト6.Text = ln1
End Sub