VBA HTML对象库不解析Outlook MailItem HTMLBody

时间:2015-09-29 06:06:35

标签: vba outlook

我试图通过提取会话线程中的最后一条消息来合并邮件。我想保持格式完整,所以我试图得到最后的消息与HTML。我正在引用像这样的Microsoft HTML Object Library

Dim mi As MailItem
Set mi = ActiveExplorer.Selection.Item(1)
Dim bhtml As HTMLBody
Set bhtml = mi.HTMLBody

这会导致类型不匹配错误。

2 个答案:

答案 0 :(得分:0)

MailItem.HTMLBody属性返回一个字符串,而不是HTLBody对象。

答案 1 :(得分:0)

我使用Regex从oMailitem.body属性返回的字符串中提取最后一条消息。这里是模式(.*(?=(From:.*\nSent:.*\nTo:)))它是+ ve展望未来我使用匹配集合中的第一项并将其设置在匹配对象中,而不是我提取最后一条消息,就像使用左侧函数一样lastmessage = Left(oMailItem.body,oMatch.firstindex)

比我把它包装成像这样的HTML

Dim vResult, vLine, sResult As String
vResult = Split(lastMessage, vbCrLf)
For Each vLine In vResult
    sResult = sResult & "</p><p>" & CStr(vLine)
Next
styledLastMessage = "<p>" & sResult & "</p>"

最后附加到邮件我想像这样合并

Dim miBody() As String
miBody = Split(oMailItem.HTMLBody, "<div class=WordSection1>")
miBody(1) = "<p>" & styledLastMessage & "</p>" & "-------" & vbCrLf & miBody(1)
oMailItem.HTMLBody = Join(miBody, "<div class=WordSection1>")

注意:<div class=WordSection1>第一条消息开始后。