文字列から指定した一部文字列を削除する(INSTR) : Access VBA 入門

文字列の中からINSTRを使いループし、指定文字列を探すプロシージャをAccess VBAで作成しました。

INSTR関数で見つかればその部分を削除します。
文字列内の空白を削除したいとか、一文字だけでなく文字列したいとかはよくあります。
ここで掲載しているプロシージャを標準モジュールなどに入れておくと、引数を指定し呼び出せば実行できます。

● 指定した文字列削除するプロシージャの構文

Function AcDeleteStr(sSrc As String, sDel As String) As String
引数 sSrc : 元の文字列を指定します。
引数 sDel : 削除する文字列を指定します。
戻り値 : 削除した結果の文字列が返ります。



BackHome BackTips Backメニュー

■ Access実行フォーム画面

フォームにボタンとテキストボックスを配置しています。
文字列から指定文字列を削除ボタンをクリックすると実行します。

1行目は、「123-4567」から「-」を削除しています。
2行目は、「アクセスのVBAを使ったアクセスの小技」から「アクセスの」を削除しています。

その結果をテキストボックスに表示しています。
指定文字列削除フォーム

■ Access VBA 実行コード

Option Compare Database
Option Explicit

Private Function AcDeleteStr(sSrc As String, sDel As String) As String
    Dim s1 As String
    Dim sc As String
    Dim n As Integer
    Dim nLen As Integer
    sc = sSrc
    s1 = ""
    nLen = Len(sDel)
    n = InStr(sc, sDel)
    Do While n > 0
        If n > 1 Then
            s1 = s1 & Left(sc, n - 1)
        End If
        sc = Mid(sc, n + nLen)
        n = InStr(sc, sDel)
    Loop
    AcDeleteStr = s1 & sc
End Function

Private Sub コマンド0_Click()
    Dim s1 As String
    s1 = "123-4567"
    Me!テキスト3 = s1 & "  結果  "
    Me!テキスト3 = Me!テキスト3 & AcDeleteStr(s1, "-") & vbCrLf & vbCrLf
   
    s1 = "アクセスのVBAを使ったアクセスの小技"
    Me!テキスト3 = Me!テキスト3 & s1 & "  結果  "
    Me!テキスト3 = Me!テキスト3 & AcDeleteStr(s1, "アクセスの")

End Sub

BackHome BackTips Backメニュー

Copyright(C) FeedSoft