VB6先頭または末尾にある指定の文字を削除する

スポンサーリンク

VB6 では、該当する関数が存在しないため、以下のような関数を自作します。

サンプルコード

以下にサンプルコードを示します。

VB6.0 以前
' -------------------------------------------------------------------------------
'       先頭または末尾に指定した文字のいずれかが連続している場所まで削除する。
'
' @Param    stTarget    処理対象となる文字列。
' @Param    stTrimChars 削除対象となる文字をすべて格納した文字列。
' @Return               先頭または末尾に連続する指定の文字が削除された文字列。
' -------------------------------------------------------------------------------
Public Function TrimChars(ByVal stTarget As String, ByVal stTrimChars As String) As String
    TrimChars = TrimCharsEnd(TrimCharsStart(stTarget, stTrimChars), stTrimChars)
End Function

' -------------------------------------------------------------------------------
'       先頭に指定した文字のいずれかが連続している場所まで削除する。
'
' @Param    stTarget    処理対象となる文字列。
' @Param    stTrimChars 削除対象となる文字をすべて格納した文字列。
' @Return               先頭に連続する指定の文字が削除された文字列。
' -------------------------------------------------------------------------------
Public Function TrimCharsStart(ByVal stTarget As String, ByVal stTrimChars As String) As String
    Dim stReturn As String
    Dim i        As Integer

    For i = 1 To Len(stTarget)
        If InStr(1, stTrimChars, Mid$(stTarget, i, 1)) <= 0 Then
            stReturn = Mid$(stTarget, i)
            Exit For
        End If
    Next i

    TrimCharsStart = stReturn
End Function

' -------------------------------------------------------------------------------
'       末尾に指定した文字のいずれかが連続している場所まで削除する。
'
' @Param    stTarget    処理対象となる文字列。
' @Param    stTrimChars 削除対象となる文字をすべて格納した文字列。
' @Return               末尾に連続する指定の文字が削除された文字列。
' -------------------------------------------------------------------------------
Public Function TrimCharsEnd(ByVal stTarget As String, ByVal stTrimChars As String) As String
    Dim stReturn As String
    Dim i        As Integer

    For i = Len(stTarget) To 1 Step -1
        If InStr(1, stTrimChars, Mid$(stTarget, i, 1)) <= 0 Then
            stReturn = Mid$(stTarget, 1, i)
            Exit For
        End If
    Next i

    TrimCharsEnd = stReturn
End Function

使用例は以下のようになります。

VB6.0 以前
    ' 処理対象となる文字列変数を宣言する
    Dim stTarget As String
    stTarget = "ABCBA-1234-CBABC"

    ' 先頭と末尾に 'A', 'B', 'C' のいずれかが連続していれば削除する
    Call MsgBox(TrimChars(stTarget, "ABC"))

    ' 先頭に 'A', 'B', 'C' のいずれかが連続していれば削除する
    Call MsgBox(TrimCharsStart(stTarget, "ABC"))

    ' 末尾に 'A', 'B', 'C' のいずれかが連続していれば削除する
    Call MsgBox(TrimCharsEnd(stTarget, "ABC"))

関連するリファレンス

準備中です。

スポンサーリンク