Access VBAで指定文字(記号)で囲まれた文字部分だけを抽出する関数

当ページのリンクには広告が含まれています。

文字列データの中で(や、複数文字に囲まれている部分だけ抜き出したい時に簡単に使える関数を作りました。

コピー貼付けで使えます。

指定すれば記号だけでなく文字や数字でも拾えます。

目次

動作確認環境

  • Microsoft 365 Apps Access バージョン 2304

VBAコード

コピーして貼り付ければすぐに使えます。

' 指定文字で囲まれた文字列部分の文字部分だけを抽出する関数
Function EnclosedString(検索文字列 As String, Optional 開始対象 As String = "(", Optional 終了対象 As String = ")")
    Dim startNum As Integer, endNum As Integer
    startNum = InStr(検索文字列, 開始対象)
    endNum = InStr(startNum + 1, 検索文字列, 終了対象)
    
    If startNum <> 0 And endNum <> 0 Then
        startNum = startNum + Len(開始対象)
        EnclosedString = Mid(検索文字列, startNum, endNum - startNum)
    Else
        EnclosedString = ""
    End If
End Function

使い方

関数として使えます。

EnclosedString(検索文字列, 開始対象, 終了対象)

開始対象と終了対象を未指定の場合は半角かっこ”()”が対象となります。

使い方例文

”@”で囲まれた文字だけ抜き出したい

[検索文字列] = CD:7815@XJ01E99@ の場合

EnclosedString([検索文字列], "@", "@")

結果:XJ01E99

【2文字以上】”<–” ”–>”で囲まれた文字だけ抜き出したい

[検索文字列] = <– –> の場合

EnclosedString("<--x123456-->","<--","-->")

結果:x123456

参考にさせて頂いたページ

VBA共通:”(“や”[“などの記号で囲まれた(くくられた)文字列の文字列部分(中身)だけを抽出する関数のサンプルプログラム

SE Life Log – VBAを中心にその他IT備忘録 – https://selifelog.com/blog-entry-292.html
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次