使用VBA如何将富文本从一个outlook项目复制到另一个outlook项目

使用VBA如何将富文本从一个outlook项目复制到另一个outlook项目,vba,outlook,richtext,Vba,Outlook,Richtext,我正在使用Outlook 2019将邮件从一个Outlook项目复制到另一个Outlook项目。问题是它不会复制富文本。下面是我正在使用的代码示例。这篇文章显著减少了: Option Explicit Sub EmailTest() Dim objOutlookApp As Object Dim objOriginalItem As Object Dim objNewItem As Object Dim ob

我正在使用Outlook 2019将邮件从一个Outlook项目复制到另一个Outlook项目。问题是它不会复制富文本。下面是我正在使用的代码示例。这篇文章显著减少了:

Option Explicit
Sub EmailTest()

Dim objOutlookApp               As Object
Dim objOriginalItem             As Object
Dim objNewItem                  As Object
Dim objInspector                As Object
Dim objAccount                  As Object
Dim strEmailAddress             As String

'Set objInspector
Set objInspector = Application.ActiveInspector

'Set objOriginalItem so that it can be referenced
Set objOriginalItem = objInspector.CurrentItem

'Set objNewItem to create the new message.
Set objNewItem = Application.CreateItem(0)

'Set objOutlook App
Set objOutlookApp = CreateObject("Outlook.Application")

'Copy the original Body into the new item Body
objNewItem.Body = objOriginalItem.Body

'Copy the original Subject into the new item Subject
objNewItem.Subject = objOriginalItem.Subject

    'Assign strEmailAddress
    strEmailAddress = "myname@gmail.com"

    'Set the fields of the MailItem.  Note:  objNewItem.Body was previously set
    With objNewItem
        .Display
        .Subject = objOriginalItem.Subject
        .To = strEmailAddress
        .Send
    End With
    Set objNewItem = Nothing

Set objOriginalItem = Nothing
Set objInspector = Nothing
Set objOutlookApp = Nothing

End Sub
这是原始邮件正文:
这是一些粗体斜体文本,
这是一些普通文本
这是一个链接
这是一些普通文本
真诚地,

不幸的是,这是发送的内容:
这是一些粗体斜体文本,
这是一些普通文本
这是一个链接
这是一些普通文本
真诚地,


问题:如何使用VBA发送保留富文本属性和链接的消息?

首先,无需在代码中创建新的
应用程序
实例:

'Set objOutlook App
Set objOutlookApp = CreateObject("Outlook.Application")
注意,您正在使用纯文本
正文
属性复制邮件内容:

'Copy the original Body into the new item Body
objNewItem.Body = objOriginalItem.Body
相反,您需要使用HTMLBody属性:

'Copy the original Body into the new item Body
objNewItem.HTMLBody = objOriginalItem.HTMLBody

除了避免复制纯文本
Body
属性(而不是使用
HTMLBody
RtfBVody
项目的ss格式),还可以使用
MailItem.copy
然后
MailItem.Move
复制所有属性