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

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

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

ふぅたこ

自分用の備忘録でもあります

目次

動作確認環境

  • Microsoft 365 Apps Access バージョン 2208

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

\楽天ポイント5倍セール!/
楽天市場
\ポイント5%還元!/
Yahooショッピング

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

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

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

コメント

コメントする

目次