|
'=========================================================================================
'
' InStrRev関数(ある文字列 (string1) の中から指定された文字列 (string2) を最後の文字位置
' から検索を開始し、最初に見つかった文字位置 (先頭からその位置までの文字数)
' を返す文字列処理関数です。)
'
'-----------------------------------------------------------------------------------------
'指定項目 説明
'stringcheck 必ず指定します。検索先の文字列式を指定します。
'stringmatch 必ず指定します。検索する文字列式を指定します。
'start 省略可能です。各検索の開始位置を設定する数式を指定します。
' 引数 start を省略すると -1 が使用され、最後の文字位置から検索を開始します。
' 引数 start に Null 値が含まれると、エラーになります。
'compare 省略可能です。文字列式を評価するときに使用する文字列比較のモードを表す数値を
' 指定します。引数 compare を省略すると、バイナリ モードで比較が行われます。
' 設定する値については、次の「設定値」を参照してください。
'
'引数 compare の設定値は次のとおりです。
'
'定数 値 説明
'VbUseCompareOption -1 Option Compare ステートメントの設定を使用して比較を行います。
'vbBinaryCompare 0 バイナリ モードで比較を行います。
'vbTextCompare 1 テキスト モードで比較を行います。
'=========================================================================================
Public Function InStrRev _
(StringCheck As String, StringMatch As String, Optional Start As Long = -1, _
Optional Compare As VbCompareMethod = vbBinaryCompare) As Long
Dim Pos As Long
Dim StrChk As String
'-- 戻り値初期化 --
InStrRev = 0
StrChk = Left(StringCheck, IIf(Start = -1, Len(StringCheck), Start))
'-- 引数確認 --
Select Case True
Case Start > Len(StrChk)
Exit Function
Case StringCheck = ""
Exit Function
Case StringMatch = ""
InStrRev = Len(StrChk): Exit Function
End Select
'-- 戻り値の文字位置取得 --
Do
Pos = InStr(InStrRev + 1, StrChk, StringMatch, Compare)
If Pos > 0 Then InStrRev = Pos
Loop Until Pos = 0
End Function
|
|