使用VBA将Outlook文本中的HTML文本复制到Word中

时间:2012-12-21 10:34:57

标签: outlook-vba

我有一些Outlook VBA代码可以创建Word文档并粘贴用户之前选择过的电子邮件的一部分,例如(删除了一些不相关的代码部分)

Private Sub CreateDoc(M As MailItem)
Dim WApp As Word.Application, WDoc As Word.Document, I As Inspector

    Set I = M.GetInspector

    Set WApp = New Word.Application
    WApp.Visible = True
    Set WDoc = WApp.Documents.Add

    Select Case I.EditorType
    Case olEditorWord
        ' this works like a charm, even if multiple parts selected in MailItem
        I.WordEditor.Application.Selection.Copy
        WApp.Selection.PasteAndFormat wdFormatOriginalFormatting

    Case olEditorHTML
        ' trouble starts here ... I don't get it ... best I came up with is
        WApp.Selection.InsertAfter I.HTMLEditor.Selection.CreateRange.Text

    Case Else
        ' unsupported formats
    End Select

    ' clean up
    Set I = Nothing
    Set WDoc = Nothing
    Set WApp = Nothing
End Sub

适用于Outlook 2003和2010

问题:

我的问题出现在olEditorHTML部分,我无法弄清楚如何获取包含格式的选定文本。到目前为止我能想出的最好的是插入纯文本。任何人都可以帮我找到正确的代码,从HTMLEditor中选择文本到Word,包括格式(就像你手动选择/ Ctrl-C / Ctrl-V一样)。

1 个答案:

答案 0 :(得分:2)

谢谢你的这篇文章。你的问题实际上成了我的一个解决方案[对于一个非常棘手的问题]。

以下代码对我有用,可能对你有用[如果你还在寻找解决方案:)

将I.WordEditor.Application.Selection.Copy更改为I.WordEditor.Selection.Copy,它可能会有效。