末尾からいくつかの文字を検索する
サンプルコード
以下にサンプルコードを示します。
VB6.0 以前
' ------------------------------------------------------------------------------- ' 末尾から先頭に向かって指定したいずれかの文字を検索する。 ' ' @Param stTarget 検索対象となる文字列。 ' @Param stFindChars 検索対象となる文字をすべて格納した文字列。 ' @Param [iStart] 検索を開始する位置。 ' @Param [iCount] 検索する文字数。 ' @Return 最初に見つかった文字列の位置。 ' ------------------------------------------------------------------------------- Public Function InStrRevAny(ByVal stTarget As String, ByVal stFindChars As String, Optional ByVal iStart As Integer, Optional ByVal iCount As Integer) As Integer If iStart <= 0 Then iStart = Len(stTarget) End If If iCount <= 0 Then iCount = Len(stTarget) - 1 End If Dim iReturn As Integer Dim i As Integer For i = iStart To iStart - iCount Step -1 If InStr(1, stFindChars, Mid$(stTarget, i, 1)) > 0 Then iReturn = i Exit For End If Next i InStrRevAny = iReturn End Function
使用例は以下のようになります。
VB6.0 以前
' 処理対象となる文字列変数を宣言する Dim stTarget As String stTarget = "EDCBABCDE" ' 末尾から 'B', 'C', 'D' のいずれかを検索し、見つかった位置を取得する Dim iFind1 As Integer iFind1 = InStrRevAny(stTarget, "BCD") ' 5 文字目から 'B', 'C', 'D' のいずれかを検索し、見つかった位置を取得する Dim iFind2 As Integer iFind2 = InStrRevAny(stTarget, "BCD", 5) ' 5 文字目から 2 文字まで 'B', 'C', 'D' のいずれかを検索し、見つかった位置を取得する Dim iFind3 As Integer iFind3 = InStrRevAny(stTarget, "BCD", 5, 2) ' すべての結果を表示する Call MsgBox( _ "iFind1 = " & CStr(iFind1) & vbNewLine & _ "iFind2 = " & CStr(iFind2) & vbNewLine & _ "iFind3 = " & CStr(iFind3) _ )
関連するリファレンス
準備中です。