検索文字列が後方から何文字目にあるかを取得する(InStrRev関数、InStrRevB関数)
 引数StringCheckで指定した文字列の中からStringMatchで指定した文字列を
後方から検索し、検索文字列が最初に見つかった場所を返します。InStr関数と
の違いは、検索を後方から行なう点です。引数Compareで使用する定数、結果の
戻り値もInStr関数と同じです。


 構文 InStrRev(StringCheck, StringMatch, Start, Compare)
    InStrRevB(StringCheck, StringMatch, Start, Compare)


 設定項目        内容
 StringCheck   検索対象の文字列を指定 [省略不可]
 StringMatch   検索文字列を指定 [省略不可]
 Start      検索開始位置を指定。省略時は1 [省略可能]
 Compare     文字列比較のモード指定 [省略可能]



 次のサンプルは、パス付きのファイル名からファイル名だけを取り出す
ものです。

●サンプル●

Sub InStrRevSamp1()

    Dim myStr As String

    myStr = Application.GetOpenFilename(Title:="ファイルを選んでください")
    If myStr <> "False" Then
        '---"\"以降の文字列を取得
        myStr = Mid(myStr, InStrRev(myStr, "\") + 1)
        MsgBox "選んだファイルは " & myStr & " です"
    Else
        MsgBox "キャンセルされました"
    End If

End Sub


●解説●

 一番最後のセパレータ(\)の位置をInStrRev関数で取得し、それ以降の
文字列をファイル名としてMid関数で取り出しています。


●ポイント●

 InStrRev関数はExcel2000の新機能です。InStr関数でInStrRev関数と同等
の機能を実現するには、最後の検索文字列になるまで、ループ処理を行なう
必要がありました。

Excel2000



戻る


Excel Word Access VBA! モーグ