Страницы: 1
RSS
Создание Макроса Word, Автоматическое сохранение всех открытых файлов в PDF и закрытие программы после сохранения.
 
Помогите
Вот шаблон макроса(может кому-то пригодится) при нажатии на кнопку который сохраняет файл в PDF с тем же именем и закрывает его.
Sub DirectlySaveDocxToPdf()
   Dim objDoc As Document
   Set objDoc = ActiveDocument
       objDoc.ExportAsFixedFormat _
       OutputFileName:=Replace(objDoc.FullName, ".docx", ".pdf"), _
       ExportFormat:=wdExportFormatPDF, _
       OptimizeFor:=wdExportOptimizeForPrint, _
       Range:=wdExportAllDocument, _
       Item:=wdExportDocumentContent
ChangeFileOpenDirectory "D:\Client-Base\Договора\"
ActiveWindow.Close
End Sub

Я хочу чтобы все файлы которые открыты у меня в Word чаще всего их 3. При нажатии на кнопку по очереди каждый файл сохранялися в PDF закрывался с после закрытия всех файлов Word закрывался сам. И я написал вот такой макрос, но проблема в том что он делает все кроме сохранения второго и третьего файла в PDF не пойму где ошибка как соединить. Он мне пишет ошибку
Sub DirectlySaveDocxToPdf()
   Dim objDoc As Document
   Set objDoc = ActiveDocument
       objDoc.ExportAsFixedFormat _
       OutputFileName:=Replace(objDoc.FullName, ".docx", ".pdf"), _
       ExportFormat:=wdExportFormatPDF, _
       OptimizeFor:=wdExportOptimizeForPrint, _
       Range:=wdExportAllDocument, _
       Item:=wdExportDocumentContent
ChangeFileOpenDirectory "D:\Client-Base\Договора\"
ActiveWindow.Close
ActiveDocument.ExportAsFixedFormat
Sub DirectlySaveDocxToPdf()
Dim objDoc As Document
   Set objDoc = ActiveDocument
       objDoc.ExportAsFixedFormat _
       OutputFileName:=Replace(objDoc.FullName, ".docx", ".pdf"), _
       ExportFormat:=wdExportFormatPDF, _
       OptimizeFor:=wdExportOptimizeForPrint, _
       Range:=wdExportAllDocument, _
       Item:=wdExportDocumentContent
ChangeFileOpenDirectory "D:\Client-Base\Договора\"
   ActiveWindow.Close
ActiveDocument.ExportAsFixedFormat
Sub DirectlySaveDocxToPdf()
Dim objDoc As Document
   Set objDoc = ActiveDocument
       objDoc.ExportAsFixedFormat _
       OutputFileName:=Replace(objDoc.FullName, ".docx", ".pdf"), _
       ExportFormat:=wdExportFormatPDF, _
       OptimizeFor:=wdExportOptimizeForPrint, _
       Range:=wdExportAllDocument, _
       Item:=wdExportDocumentContent
ChangeFileOpenDirectory "D:\Client-Base\Договора\"
ActiveWindow.Close
Application.Quit
End Sub
 
Доброе утро, попробуйте:
Код
Sub SaveAllAsPDF()
    Dim doc As Document
    For Each doc In Documents
        doc.ExportAsFixedFormat OutputFileName:=Replace(doc.FullName, ".docx", ".pdf"), _
            ExportFormat:=wdExportFormatPDF
        doc.Close False 'замените на True если хотите сохранить каждый файл
    Next doc
    Application.Quit SaveChanges:=wdDoNotSaveChanges 'замените на wdSaveChanges, если хотите сохранить
End Sub
Изменено: Behruz A.N. - 06.07.2023 06:19:41
Вредить легко, помогать трудно.
 
Illia2023,  у Вас вопрос по Word? А у нас форум по Excel. Переношу тему в "Курилку"
И код следует оформлять соответствующим тегом. Ищите кнопку <...> и исправьте своё сообщение.
Страницы: 1
Наверх