如何安装创建.PDF用VBA到邮件正文

问题描述 投票:1回答:1

我有一个转换的文档从.DOCX到保存到桌面.PDF。最后的任务就是这个.PDF附加到电子邮件的正文;在HTML签名应保持不变。

我认为这个问题是这行代码,我不知道如何纠正它:

.Attachments.Add PdfFile.FullName

完整的代码:

Public Sub Mail()
    Dim LastAuthor As String
        LastAuthor = ActiveDocument.BuiltInDocumentProperties("last Author")

        Dim Email As String
            Email = Replace(LastAuthor, " ", ".") & "@xyz.ro"


    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
        .Display
        .Signature = "HTMLbody"
        .To = Email
        .CC = ""
        .BCC = ""
        .Subject = ActiveDocument.Name
        '.Body = "AVIZAT. Multumesc mult"
        '.Attachments.Add ActiveDocument.FullName
        ' You can add other files by uncommenting the following line.
        '.Attachments.Add ("C:\test.txt")
        ' In place of the following statement, you can use ".Display" to
        ' display the mail.
        .HTMLbody = "AVIZAT, esantionul este in ordine. Multumesc" & "<br>" & .HTMLbody

        Dim objDoc As Document
        Set objDoc = ActiveDocument
        objDoc.ExportAsFixedFormat _
        OutputFileName:=Replace(objDoc.FullName, ".docx", ".pdf"), _
        ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, _
        Range:=wdExportAllDocument, Item:=wdExportDocumentContent
        ' Add the attachment first for correct attachment's name with non English symbols
        .Attachments.Add PdfFile.FullName
        '.Preview 'Preview the email must disable .send & MsgBox (or use .Send to send it)
        .send
        MsgBox "E-mail trimis cu succes"

    Set OutMail = Nothing
    Set OutApp = Nothing

    End With

End Sub
vba outlook ms-word
1个回答
0
投票

这将做到:

Public Sub Mail()

    Dim LastAuthor As String
    Dim Email As String
    Dim MyPdfName As String
    Dim objDoc As Document

    LastAuthor = ActiveDocument.BuiltinDocumentProperties("last Author")
    Email = Replace(LastAuthor, " ", ".") & "@xyz.ro"

    Set objDoc = ActiveDocument
    MyPdfName = Replace(objDoc.FullName, ".docx", ".pdf")
    objDoc.ExportAsFixedFormat _
    OutputFileName:=MyPdfName, _
    ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, _
    Range:=wdExportAllDocument, Item:=wdExportDocumentContent

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    With OutMail
        .Display
        .To = Email
        .CC = ""
        .BCC = ""
        .Subject = objDoc.Name
        .HTMLBody = "<BODY style=font-size:12pt;font-family:Calibri>Servus<br>Esantionul este in ordine.<br><br>Multumesc,<br>" & .HTMLBody
        .Attachments.Add MyPdfName
        .Send
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing

    MsgBox "E-mail trimis cu succes"

End Sub

它远非完美,但更加清晰,现在,最重要的工作。

© www.soinside.com 2019 - 2024. All rights reserved.