この郵便受け受信メール内のテキストを Outlook ルールで置き換える VBA ソリューションについて説明します。
同じ方法を使用して、受信したメールの先頭から「外部メッセージ」テキストを削除しました (実際には雇用主が挿入する 2 行のテキストで、非常に迷惑です)。ただし、VBA で置換を行うと、結果のメールの書式も変更されます。テキストは意図したとおりに置換されます (すばらしい!) が、メール内のすべてのハイパーリンクが展開され、その他の HTML 書式はすべて失われます (よくありません)。プレーン テキストに変換されたようです。Outlook で受信メッセージのテキストを HTML 書式を失うことなく置換する方法はありますか?
私が実行しているコードは次のとおりです:
Sub RemoveExternalText(MyMail As MailItem)
Dim body As String, re As Object, match As Variant
body = MyMail.body
Set re = CreateObject("vbscript.regexp")
re.Pattern = "External Message"
For Each match In re.Execute(body)
body = Replace(body, match.Value, "")
Next
MyMail.body = body
MyMail.Save
End Sub
答え1
VBA を使用して HTML メールを作成する方法について読んでいると、「MyMail.body」ではなく「MyMail.HTMLbody」が使用されていることがわかりました。
その構文でコードを変更すると問題は解決しました。
Sub RemoveExternalText(MyMail As MailItem)
Dim body As String, re As Object, match As Variant
body = MyMail.HTMLBody
Set re = CreateObject("vbscript.regexp")
re.Pattern = "External Message"
For Each match In re.Execute(body)
body = Replace(body, match.Value, "")
Next
MyMail.HTMLBody = body
MyMail.Save
End Sub