2016-08-11 10 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 

編集

あなたがトンが必要な場合&アドオンが添付

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の代わりにwordファイルを引き出しています。 –

+0

@ReyTaino更新された応答を参照してください – 0m3r

+1

良いコール@ Om3r - パスをConstにするだけでそれを微調整しなければなりませんでした。 "コンパイルエラー - 現在のパスで読み取り専用プロパティに割り当てることができません" 。ご協力ありがとうございました。 –

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

ようであるパスを使用するにはTXT、RTF、HTML、PDFなどの複数のWordファイルを他の形式に変換するには、以下のスクリプトを実行します。

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 

結果は、動的に作成され、変換したばかりのドキュメントを含むフォルダと同じフォルダに保存されます。

関連する問題