Сохранение в PDF книги Excel, группы листов, одного листа или отдельного диапазона с помощью кода VBA. Метод ExportAsFixedFormat. Примеры экспорта.
Метод ExportAsFixedFormat
Метод ExportAsFixedFormat сохраняет рабочую книгу Excel или выбранную группу листов этой книги в один PDF-файл. Чтобы экспортировать каждый лист в отдельный файл, необходимо применить метод ExportAsFixedFormat к каждому сохраняемому листу.
Синтаксис
1 |
Expression.ExportAsFixedFormat (Type, FileName, Quality, IncludeDocProperties, IgnorePrintAreas, From, To, OpenAfterPublish, FixedFormatExtClassPtr) |
Expression – это выражение, представляющее объект Workbook, Worksheet или Range.
Параметры
Единственный обязательный параметр – Type, остальные можно не указывать – в этом случае будут применены значения по умолчанию.
Параметр | Описание |
---|---|
Type | Задает формат файла для экспорта книги или листа: xlTypePDF(0) – сохранение в файл PDF; xlTypeXPS(1) – сохранение в файл XPS*. |
FileName | Задает имя файла. При указании полного пути, файл будет сохранен в указанную папку, при указании только имени – в папку по умолчанию (в Excel 2016 – «Документы»). Если имя не задано (по умолчанию), файл будет сохранен с именем экспортируемой книги. |
Quality | Задает качество сохраняемых электронных таблиц: xlQualityMinimum(1) – минимальное качество; xlQualityStandard(0) – стандартное качество (по умолчанию). |
IncludeDocProperties | Включение свойств документа Excel в PDF: True(1) – включить; False(0) – не включать; мне не удалось обнаружить разницу и значение по умолчанию. |
IgnorePrintAreas | Указывает VBA, следует ли игнорировать области печати, заданные на листах файла Excel: True(1) – игнорировать области печати; False(0) – не игнорировать области печати (по умолчанию). |
From** | Задает номер листа книги Excel, с которого начинается экспорт. По умолчанию сохранение в PDF начинается с первого листа книги. |
To** | Задает номер листа книги Excel, на котором заканчивается экспорт. По умолчанию сохранение в PDF заканчивается на последнем листе книги. |
OpenAfterPublish | Указывает VBA на необходимость открыть созданный файл PDF средством просмотра: True(1) – открыть файл PDF для просмотра; False(0) – не открывать файл PDF для просмотра (по умолчанию). |
FixedFormatExtClassPtr | Указатель на класс FixedFormatExt (игнорируем этот параметр). |
* XPS – это редко использующийся фиксированный формат файлов, разработанный Microsoft, который похож на PDF, но основан на языке XML.
** Применимо только к книге (Workbook.ExportAsFixedFormat), при экспорте листа (Worksheet.ExportAsFixedFormat) указание параметров From и/или To приведет к ошибке.
Примеры экспорта в PDF
Сохранение в PDF книги Excel
Экспорт всей книги
1 2 3 |
Sub Primer1() ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Test\file1.pdf", OpenAfterPublish:=True End Sub |
Если вы указываете путь к файлу, он должен существовать, иначе VBA сохранит файл с именем и в папку по умолчанию («ИмяКниги.pdf» в папку «Документы»).
Экспорт части книги
Этот способ позволяет сохранить в PDF группу листов, расположенных подряд:
1 2 3 4 |
Sub Primer2() ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Test\file2.pdf", _ From:=2, To:=4, OpenAfterPublish:=True End Sub |
Сохранение в PDF рабочих листов
Экспорт одного листа
1 2 3 |
Sub Primer3() ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Test\file3.pdf", OpenAfterPublish:=True End Sub |
Экспорт диапазона
1 2 3 |
Sub Primer2() Лист4.Range("A1:F6").ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Test\file4.pdf", OpenAfterPublish:=True End Sub |
Если экспортируемый диапазон расположен на активном листе, имя листа указывать не обязательно.
Экспорт группы листов
Этот способ удобен тем, что экспортировать в PDF можно листы, расположенные не подряд:
1 2 3 4 |
Sub Primer5() Sheets(Array("Лист2", "Лист3", "Лист5")).Select Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\Test\file5.pdf", OpenAfterPublish:=True End Sub |
не работает
Все работает в Excel 2016
Selection.ExportAsFixedFormat.. — выделенный диапазон
ActiveSheet.ExportAsFixedFormat.. — выделенные листы
Обсуждение закрыто.