서식을 잃지 않고 Outlook 2013에서 들어오는 메시지 본문의 텍스트를 VBA로 바꾸는 방법

서식을 잃지 않고 Outlook 2013에서 들어오는 메시지 본문의 텍스트를 VBA로 바꾸는 방법

이 게시물수신 이메일의 텍스트를 Outlook 규칙으로 바꾸는 VBA 솔루션에 대해 설명합니다.

나는 수신한 이메일 상단에서 "외부 메시지" 텍스트를 제거하기 위해 동일한 접근 방식을 사용했습니다(실제로 고용주가 삽입한 두 줄의 텍스트이므로 정말 짜증납니다). 그러나 VBA가 교체를 수행하면 결과 전자 메일의 형식도 변경됩니다. 텍스트는 의도한 대로 바뀌었지만(훌륭합니다!) 이메일의 모든 하이퍼링크는 확장되고 다른 모든 HTML 형식은 손실됩니다(좋지 않음). 일반 텍스트로 변환된 것 같습니다. HTML 형식을 잃지 않고 Outlook에서 들어오는 메시지의 텍스트를 바꿀 수 있는 방법이 있습니까?

내가 실행 중인 코드는 다음과 같습니다.

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

관련 정보