mayu
2025/07/26 (土) 22:23:13
fc5d2@6c788
のように置換のルールを並べて記載して
置換対象が「文字列」ではなく「ルール」ですから、VBA.Replace関数での実装は難しいでしょう
別案として 正規表現のUDFを利用する方法をご紹介します
■ユーザー定義関数
Public Function LAA_Replace(ByVal html As Variant _
, ByVal reg_pattern As String _
, ByVal reg_replace As String) As Variant
LAA_Replace = html
If (LenB(Nz(html)) = 0) Then Exit Function
With CreateObject("VBScript.RegExp")
.Global = True
.IgnoreCase = True
.Pattern = reg_pattern
If (.Test(html)) Then
LAA_Replace = .Replace(html, reg_replace)
End If
End With
End Function
■SQL ( 文中のテーブル名は実際の名前に置き換えて下さい )
SELECT ID
, 品番
, 説明文
, LAA_Replace( 説明文, "(<(?:table|t[hd]|span))\s[^>]*(>)", "$1$2" ) as タグ指定置換
, LAA_Replace( 説明文, "(<\w+?)\s[^>]*(>)", "$1$2" ) As タグ無差別置換
FROM テーブル名
ORDER BY 1
;
なお、正規表現に馴染みが無い場合は chatGPT あたりを利用し、AI に
vbscript 正規表現 マニュアル
というメッセージを送ってみたり、Grok に
vbscript 正規表現 メタ文字
とでも尋ねてみると、それなりの例やマニュアルを提示してくれるでしょう
通報 ...