文字列データの中で(や、複数文字に囲まれている部分だけ抜き出したい時に簡単に使える関数を作りました。
コピー貼付けで使えます。
目次
動作確認環境
- 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
使い方
関数として使えます。
開始対象と終了対象を未指定の場合は半角かっこ”()”が対象となります。
使い方例文
”@”で囲まれた文字だけ抜き出したい
[検索文字列] = CD:7815@XJ01E99@ の場合
EnclosedString([検索文字列], "@", "@")
結果:XJ01E99
【2文字以上】”<–” ”–>”で囲まれた文字だけ抜き出したい
[検索文字列] = <– –> の場合
EnclosedString("<--x123456-->","<--","-->")
結果:x123456
¥2,178 (2022/09/29 16:13時点 | Amazon調べ)
ポチップ
参考にさせて頂いたページ
VBA共通:”(“や”[“などの記号で囲まれた(くくられた)文字列の文字列部分(中身)だけを抽出する関数のサンプルプログラム
SE Life Log – VBAを中心にその他IT備忘録 – https://selifelog.com/blog-entry-292.html
コメント