VBA: Within Excel how do I save a word document as a PDF?

12,581

ExportAsFixedFormat is a method of Word.Document (objDoc), not Word.Application (objWord). So

objDoc.ExportAsFixedFormat OutputFileName:="C:\Docs\File.pdf", ExportFormat:=wdExportFormatPDF

should work.

Does this give an error too? Which?

Share:
12,581
Admin
Author by

Admin

Updated on June 04, 2022

Comments

  • Admin
    Admin almost 2 years

    I have some code that copies and pastes data from an Excel file into a word document, how can I get that word document to save as a PDF?

    My code is as follows:

    Sub RetailerGraphs()
    
    Dim Location As String
    Dim Detail As String
    
    Worksheets("-Summary").Activate
    Range("AE9").Select
    While ActiveCell.Value <> ""
        ActiveCell.Offset(1, 0).Select
        Location = ActiveCell.Value
        Worksheets("Detail Summary").Activate
        Range("B7").Value = Location
    
        Dim objWord, objDoc As Object
        ActiveWindow.View = xlNormalView
        Set objWord = CreateObject("Word.Application")
        Set objDoc = objWord.Documents.Add
    
        Range("AH40").Select
        While ActiveCell <> ""
            ActiveCell.Offset(1, 0).Select
            Detail = ActiveCell.Value
            Range("B11").Value = Detail 
            Application.Wait (Now + TimeValue("0:00:05"))
            Range("A1:Z111").CopyPicture Appearance:=xlScreen, Format:=xlPicture
            objWord.Visible = True
            objWord.Selection.Paste
            objWord.Selection.TypeParagraph
            Set objSelection = objWord.Selection
            objSelection.InsertBreak (wdPageBreak)
            If ActiveCell.Value = "END" Then
                 objWord.SaveAs2 "C:\Docs\MyDoc.pdf"
            End If
        Wend
        Worksheets("-Summary").Activate
    Wend
    
    End Sub
    

    Within the lines:

    If ActiveCell.Value = "END" Then
    
    End If
    

    I have tried the following code to try to get it to save as a PDF:

     objWord.ExportAsFixedFormat OutputFileName:="C:\wordtest.pdf", _
      ExportFormat:=wdExportFormatPDF
    
     objWord.ExportAsFixedFormat OutputFileName:="C:\Documents and Settings\All Users\Desktop\YourFile.pdf", ExportFormat:=wdExportFormatPDF
    
     objDoc.ExportAsFixedFormat OutputFileName:="C:\Documents and Settings\All Users\Desktop\YourFile.pdf", ExportFormat:=wdExportFormatPDF
    

    But I get the error on the line where I try to export it as a PDF, e.g. objWord.SaveAs2 "C:\Docs\MyDoc.pdf" :

    Run-time error '438':
    Object doesn't support this property or method
    

    Can someone please help?

    Note: I have ensured that "Microsoft Word 14.0 Object Library" is ticked in the references, and I change the location to the necessary directory rather than using the above.