Цей підручник покаже, як зберегти / роздрукувати у PDF у Excel VBA.
Друк у PDF
Ця проста процедура роздрукує ActiveSheet у форматі PDF.
123456 | Sub SimplePrintToPDF ()ActiveSheet.ExportAsFixedFormat Тип: = xlTypePDF, Ім'я файлу: = "demo.pdf", Якість: = xlQualityStandard, _IncludeDocProperties: = False, IgnorePrintAreas: = False, OpenAfterPublish: = TrueEnd Sub |
Я також створив функцію з обробкою помилок тощо, яка надрукує ActiveSheet у PDF:
12345678910111213141516171819202122232425262728293031323334353637383940 | Додатковий друкPDF ()Викличте Save_PDFEnd SubФункція Save_PDF () Як Boolean 'Копіює аркуші у новий PDF-файл для надсилання електронною поштоюЗатемнити цей аркуш як рядок, цей файл як рядок, ім'я шляху як рядокDim SvAs As StringApplication.ScreenUpdating = Неправда'Отримати ім'я збереження файлуЦей лист = ім'я ActiveSheetThisFile = ActiveWorkbook.NamePathName = ActiveWorkbook.PathSvAs = Ім'я шляху & "\" & Цей аркуш & ".pdf"'Встановіть якість друкуУвімкнути Помилка Відновити ДаліActiveSheet.PageSetup.PrintQuality = 600Помилка. ЯсноПомилка Перейти до 0'Позначте користувача, як надсилатиУвімкнено помилку Перейти до RefLibErrorActiveSheet.ExportAsFixedFormat Тип: = xlTypePDF, Ім'я файлу: = SvAs, Якість: = xlQualityStandard, IncludeDocProperties: = False, IgnorePrintAreas: = False, OpenAfterPublish: = TrueПомилка Перейти до 0Зберегти лише:MsgBox "Копія цього аркуша успішно збережена у форматі .pdf:" & Chr (13) & Chr (13) & SvAs & _"Перегляньте документ .pdf. Якщо документ НЕ виглядає добре, відрегулюйте параметри друку та повторіть спробу."Save_PDF = ІстинаПерейти до EndMacroПомилка RefLibError:MsgBox "Неможливо зберегти як PDF. Довідкова бібліотека не знайдена."Save_PDF = НеправдаEndMacro:Функція завершення |
Функція повертає TRUE або FALSE, якщо друк у PDF був успішним чи ні.
Зберегти та надіслати електронною поштою функцію PDF
Ця функція збереже ActiveSheet як PDF та (необов’язково) прикріпить PDF до електронного листа (за умови, що у вас інстальовано Outlook):
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | Sub Test_Save_PDF ()Виклик Send_PDF ("SendEmail")End SubФункція Send_PDF (Додаткова дія As String = "SaveOnly") As Boolean 'Копіює аркуші у новий PDF-файл для надсилання електронною поштоюЗатемнити цей аркуш як рядок, цей файл як рядок, ім'я шляху як рядокDim SvAs As StringApplication.ScreenUpdating = Неправда'Отримати ім'я збереження файлуЦей лист = ім'я ActiveSheetThisFile = ActiveWorkbook.NamePathName = ActiveWorkbook.PathSvAs = Ім'я шляху & "\" & Цей аркуш & ".pdf"'Встановіть якість друкуУвімкнути Помилка Відновити ДаліActiveSheet.PageSetup.PrintQuality = 600Помилка. ЯсноПомилка Перейти до 0'Позначте користувача, як надсилатиПомилка переходу Перейти до RefLibErrorActiveSheet.ExportAsFixedFormat Тип: = xlTypePDF, Ім'я файлу: = SvAs, Якість: = xlQualityStandard, IncludeDocProperties: = False, IgnorePrintAreas: = False, OpenAfterPublish: = TrueПомилка Перейти до 0' Відправити листЯкщо дія = "SendEmail" ТодіУвімкнено Помилка Перейти до збереження лишеApplication.Dialogs (xlDialogSendMail) .ShowПомилка Перейти до 0Перейти до EndMacroЗакінчити ЯкщоЗберегти лише:MsgBox "Копія цього аркуша успішно збережена у форматі .pdf:" & Chr (13) & Chr (13) & SvAs & _"Перегляньте документ .pdf. Якщо документ НЕ виглядає добре, відрегулюйте параметри друку та повторіть спробу."Send_PDF = ІстинаПерейти до EndMacroПомилка RefLibError:MsgBox "Неможливо зберегти як PDF. Довідкова бібліотека не знайдена."Send_PDF = НеправдаEndMacro:Функція завершення |