将邮件项目打印为 pdf

luk*_*e_t 5 outlook vba

我正在尝试将 Outlook 文件夹中的所有邮件项目保存为 PDF。

Sub pdfConversion()
    Dim outApp As Object, objOutlook As Object, objFolder As Object, myItems As Object, myItem As Object
    Dim psName As String, pdfName As String

    Set outApp = CreateObject("Outlook.Application")
    Set objOutlook = outApp.GetNamespace("MAPI")
    Set objFolder = objOutlook.GetDefaultFolder(olFolderInbox).Folders("PDF Conversion")
    Set myItems = objFolder.Items

    For Each myItem In myItems
        myItem.PrintOut copies:=1, preview:=False, ActivePrinter:="Adobe PDF", printtofile:=True, _
        collate:=True, prtofilename:="C:\Users\lturner\Documents\" & myItem.Subject & ".pdf"
    Next myItem
End Sub
Run Code Online (Sandbox Code Playgroud)

我使用的是 Outlook 2007,它没有将邮件保存为 PDF 的选项,因此我正在尝试使用该.PrintOut方法。

使用上述内容,我目前收到“未找到命名参数”错误。我在互联网上的其他地方看过,但似乎找不到解决方案。

luk*_*e_t 5

我使用了KrishnaEugene Astafiev发布的答案的组合来生成以下代码,该代码现在将从myItem.

Dim objDoc As Object, objInspector As Object
For Each myItem In myItems
    fileName = Replace(myItem.Subject, ":", "")
    Set objInspector = myItem.GetInspector
    Set objDoc = objInspector.WordEditor
    objDoc.ExportAsFixedFormat folderPath & fileName & ".pdf", 17
    Set objInspector = Nothing
    Set objDoc = Nothing
Next myItem
Run Code Online (Sandbox Code Playgroud)

发布此信息,以便将来偶然发现该问题的任何人都可以看到使用该WordEditor属性的工作代码。