InStrRev関数:Access

Access InstrRev関数は文字列から指定した文字列を後ろから検索し、最初に見つかった位置を、前から何文字目かを返す関数です。

InStr関数は前から検索、InstrRev関数は後ろから検索します。

BackHome BackAccess関数


■ 構文
InstrRev(stringcheck, stringmatch[, start[, compare]])

■ 引数
stringcheck : (必須) 検索対象を指定します。
stringmatch : (必須) 検索する文字列を指定します。
start : (省略可)  検索の開始位置を指定します。省略すると -1 が設定され、最後の位置から検索します。
compare : (省略可) 比較のモードを表す数値を指定します。省略すると、バイナリ モードになります。

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実行」 : 検索対象文を前から検索し、検索結果に表示します。
 前側の「文字」が検索され、21目となっています。
「InStrRev実行」 : 検索対象文を後ろから検索し、検索結果に表示します。
 後側の「文字」が検索され、前から25文字目となっています。
InStr関数とInStrRev関数を実行し比較するフォーム

■ 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
' InStrRev関数
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 = InStrRev(s1, s2)
    Me!テキスト1.SetFocus
    Me!テキスト1.Text = ln1
End Sub
' InStr関数
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

BackHome BackAccess関数

Copyright(C) FeedSoft