2016-08-11 122 views
1

我想將Word文檔轉換爲PDF格式,並將其作爲附件作爲我構建的Outlook電子郵件的一部分發送。將Word文檔轉換爲PDF並在Outlook中作爲附件發送

我已經嘗試在我的SaveAs2行的末尾添加「。pdf」,它將文件格式更改並附加爲pdf,但是,當試圖打開文件時它不顯示,並且給我一條消息當作爲附件發送時,文件沒有全部的代碼。

任何建議將不勝感激。由於

Private Sub emailbutton_Click() 
     'No-option email sending 
     Dim OL    As Object 
     Dim EmailItem  As Object 
     Dim Doc    As Document 

     Application.ScreenUpdating = False 
     Set OL = CreateObject("Outlook.Application") 
     Set EmailItem = OL.CreateItem(olMailItem) 
     Set Doc = ActiveDocument 

     If VName.Value = "" Then 
      Doc.SaveAs ("Quotation_Blank 2016") 
     Else 
      Doc.SaveAs2 ("QFORM" & "_" & JNumber.Value & "_" & VName.Value) 

     End If 

     With EmailItem 
     .Display 
     End With 
    '  Signature = EmailItem.body 


     With EmailItem 
      .Subject = "QFORM" & "_" & JNumber.Value & "_" & VName.Value 

      'HTMLbody 
      msg = "<b><font face=""Times New Roman"" size=""4"" color=""blue"">INTEGRATED ASSEMBLY </font></b><br>" _ 
      & " 1200 Woodruff Rd.<br>" _ 
      & " Suite A12<br>" _ 
      & " Greenville, SC 29607<br><br>" _ 
      & "We have recently released subject project, which will contain assemblies to be outsourced. You have been selected to build these assemblies according to the attachment. <br><br>" _ 
      & "As part of this process, please review the quotation form attached and indicate your acceptance. If adjustments and-or corrections are required, please feel free to contact us for quick resolution. <br><br>" _ 
      & "<b><font face=""Times New Roman"" size=""4"" color=""Red"">NOTE: </font></b>" _ 
      & "The information on attached quotation form is not a contract and only an estimate of predetermined costs per hourly rate for outsource assemblies. <br><br>" _ 
      & "*******For your records you may wish to print out the completed quote form. <br><br>" _ 
      & "Thank you, <br><br>" _ 
      & "<b>HARTNESS INTERNATIONAL </b><br>" _ 
      & "H1 Production Control <br>" _ 
      & vbNewLine & Signature 

      .HTMLBody = msg & .HTMLBody 

      If VName.Value = "INTEGRATED ASSEMBLY" Then 
       .To = "Email1.com;" 
       .CC = "Email2.com;" & "Email3.com;" 
       .Importance = olImportanceNormal 'Or olImportanceHigh Or   olImportanceLow 
       .Attachments.Add Doc.FullName 
       .Display 
      ElseIf VName.Value = "LEWALLEN" Then 
       .To = "Email1.com;" 
       .CC = "Email2.com;" & "Email3.com;" 
       .Importance = olImportanceNormal 'Or olImportanceHigh Or   olImportanceLow 
       .Attachments.Add Doc.FullName 
       .Display 

      End If 
     End With 




     Application.ScreenUpdating = True 

     Set Doc = Nothing 
     Set OL = Nothing 
     Set EmailItem = Nothing 

    End Sub 

回答

1

更改saveAs2這條路。

If VName.Value = "" Then 
    Doc.SaveAs ("Quotation_Blank 2016") 
Else 
    Doc.ExportAsFixedFormat OutputFileName:="QFORM" & "_" & JNumber.Value , _ 
    ExportFormat:=wdExportFormatPDF 
End If 

編輯

如果您需要t若要使用路徑&補充的是作爲附件

If VName.Value = "" Then 
    Doc.SaveAs ("Quotation_Blank 2016") 
Else 
    Path = "C:\Temp\" 
    FileName = "QFORM" & "_" & JNumber.Value & "_" & VName.Value 
    Doc.ExportAsFixedFormat OutputFileName:=Path & FileName, _ 
    ExportFormat:=wdExportFormatPDF 
End If 

而且Attahcment

 .Attachments.Add Path & FileName & ".pdf" 
+0

該代碼看起來像我所需要的,但我認爲我的另一個問題是如何創建一個路徑以將其保存在當前文件夾中,以及如何將其作爲附件添加到此代碼中。我目前正在使用.Attachment.Add Doc.FullName,它仍在拉文字而不是pdf。 –

+0

@ReyTaino @ReyTaino查看更新的答案 – 0m3r

+1

Good call @ Om3r - 我不得不通過將Path設置爲一個常量來調整它。我一直收到「編譯錯誤 - 無法分配給只讀屬性」,當前路徑。感謝您的幫助。 –

2

隨着SaveAs2可以指定的FileFormat

https://msdn.microsoft.com/en-us/library/office/ff836084.aspx

expression .SaveAs2(FileName, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter, Encoding, InsertLineBreaks, AllowSubstitutions, LineEnding, AddBiDiMarks, CompatibilityMode)

https://msdn.microsoft.com/en-us/library/office/ff839952.aspx

的FileFormat是wdFormatPDF或17

0

o將多個Word文件轉換爲其他格式,如TXT,RTF,HTML或PDF,請運行以下腳本。

Option Explicit On 

Sub ChangeDocsToTxtOrRTFOrHTML() 
    'with export to PDF in Word 2007 
    Dim fs As Object 
    Dim oFolder As Object 
    Dim tFolder As Object 
    Dim oFile As Object 
    Dim strDocName As String 
    Dim intPos As Integer 
    Dim locFolder As String 
    Dim fileType As String 
    On Error Resume Next 

    locFolder = InputBox("Enter the folder path to DOCs", "File Conversion", "C:\Users\your_path_here\") 
    Select Case Application.Version 
     Case Is < 12 
      Do 
       fileType = UCase(InputBox("Change DOC to TXT, RTF, HTML", "File Conversion", "TXT")) 
      Loop Until (fileType = "TXT" Or fileType = "RTF" Or fileType = "HTML") 
     Case Is >= 12 
      Do 
       fileType = UCase(InputBox("Change DOC to TXT, RTF, HTML or PDF(2007+ only)", "File Conversion", "TXT")) 
      Loop Until (fileType = "TXT" Or fileType = "RTF" Or fileType = "HTML" Or fileType = "PDF") 
    End Select 

    Application.ScreenUpdating = False 
    Set fs = CreateObject("Scripting.FileSystemObject") 
    Set oFolder = fs.GetFolder(locFolder) 
    Set tFolder = fs.CreateFolder(locFolder & "Converted") 
    Set tFolder = fs.GetFolder(locFolder & "Converted") 

    For Each oFile In oFolder.Files 
     Dim d As Document 
     Set d = Application.Documents.Open(oFile.Path) 
     strDocName = ActiveDocument.Name 
     intPos = InStrRev(strDocName, ".") 
     strDocName = Left(strDocName, intPos - 1) 
     ChangeFileOpenDirectory tFolder 
     Select Case fileType 
      Case Is = "TXT" 
       strDocName = strDocName & ".txt" 
       ActiveDocument.SaveAs FileName:=strDocName, FileFormat:=wdFormatText 
     Case Is = "RTF" 
       strDocName = strDocName & ".rtf" 
       ActiveDocument.SaveAs FileName:=strDocName, FileFormat:=wdFormatRTF 
     Case Is = "HTML" 
       strDocName = strDocName & ".html" 
       ActiveDocument.SaveAs FileName:=strDocName, FileFormat:=wdFormatFilteredHTML 
     Case Is = "PDF" 
       strDocName = strDocName & ".pdf" 
       ActiveDocument.ExportAsFixedFormat OutputFileName:=strDocName, ExportFormat:=wdExportFormatPDF 
     End Select 
     d.Close 
     ChangeFileOpenDirectory oFolder 
    Next oFile 
    Application.ScreenUpdating = True 

End Sub 

結果保存的是動態創建的文件夾中,幷包含您剛纔轉換的文件相同的文件夾。