先頭または末尾にある指定の文字を削除する
スポンサーリンク
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"))
関連するリファレンス
準備中です。