Страницы: 1
RSS
Как из excel открыть файл word и сохранить его в формате pdf
 
Здравствуйте уважаемые форумчане!
Подскажите пожалуйста, как из excel открыть файл word и сохранить его в формате pdf ?
Собственно, как открыть файл word я разобрался, а вот как его дальше сохранить в pdf не знаю.
 
В приведенном ниже коде подправьте константу DocFileName
Код
Sub SaveDocAsPdf()

  ' -->  Setting, change to suit
  Const DocFileName = "C:\Temp\Wb1.doc"
  ' <-- End of setting
  
  Dim objWord As Object
  Const wdExportFormatPDF = 17, wdExportOptimizeForPrint = 0, wdExportAllDocument = 0
  
  ' Set/Create object of Word Application
  On Error Resume Next
  Set objWord = GetObject(, "Word.Application")
  If objWord Is Nothing Then Set objWord = CreateObject("Word.Application")
  On Error GoTo exit_
    
  ' Open document, print it as PDF and then close
  With objWord.Documents.Open(Filename:=DocFileName, ReadOnly:=True)
      .ExportAsFixedFormat OutputFileName:=Left(DocFileName, InStrRev(DocFileName, ".")) & "PDF", _
                           ExportFormat:=wdExportFormatPDF, _
                           OpenAfterExport:=False, _
                           OptimizeFor:=wdExportOptimizeForPrint, _
                           Range:=wdExportAllDocument
       .Close False
  End With
  
exit_:

  ' Inform about error
  If Err Then MsgBox Err.Description, vbCritical, "Error #" & Err.Number
  
End Sub
Изменено: ZVI - 13.02.2016 06:23:14
 
Все работает, ОГРОМНОЕ спасибо
 
Есть макрос использующий данные из Эксель для заполнения шаблона Ворд. Я никак не могу понять как их поженить чтобы конечный документ сохранялся в PDF. Не очень удобно фиксированное значение константы DocFileName. Хотелось бы использовать имя созданного моим макросом файла. Все мои поиски не увенчались успехом. Попытка приравнять DocFileName и wdDoc тоже ничего не дала.
Код
Sub main3()
Dim wdApp As Object
Dim wdDoc As Object

HomeDir$ = ThisWorkbook.Path
Set wdApp = CreateObject("Word.Application")

i% = 13

DataC$ = Date
UB$ = Cells(i%, 1).Text
PR$ = Cells(i%, 3).Text

FileCopy HomeDir$ + "\SHudovl.docx", HomeDir$ + "\" + "уведомление о выплате" + "_" + PR$ + ".docx"
Set wdDoc = wdApp.Documents.Open(HomeDir$ + "\" + "уведомление о выплате" + "_" + PR$ + ".docx")

wdDoc.Range.Find.Execute FindText:="&date", ReplaceWith:=DataC$
wdDoc.Range.Find.Execute FindText:="&ub", ReplaceWith:=UB$
wdDoc.Range.Find.Execute FindText:="&pr", ReplaceWith:=PR$

wdDoc.Save
wdDoc.Close
wdApp.Quit
MsgBox "Готово!"

End Sub
 
Попробуйте так
Скрытый текст
Согласие есть продукт при полном непротивлении сторон
 
Пришлось поменять порядок строк, но сработало. Спасибо!
Скрытый текст
Страницы: 1
Наверх