Excel VBA для друку як PDF і збереження з автоматичним ім'ям файлу

  • Поділитися Цим
Hugh West

Існують переваги для експорту Excel електронну таблицю у вигляді PDF Змінивши файл у формат PDF, ми зможемо роздрукувати і поділитися ним з різними професійними зв'язками. PDF - це надійний стандарт для експорту документів, якими ви відчуваєте необхідність поділитися з іншими або оприлюднити. У цій статті ми продемонструємо кілька прикладів VBA для друку у форматі PDF та збереження з автоматичним ім'ям файлу.

Завантажити Практичний посібник

Ви можете завантажити робочий зошит та потренуватися за ним.

VBA Друк в PDF.xlsm

9 Приклади Excel VBA для друку у форматі PDF та збереження з автоматичним ім'ям файлу в Excel

Ми можемо легко роздрукувати файл Excel у форматі PDF і зберегти файл з автоматичним ім'ям за допомогою панелі інструментів Excel. Але було б простіше за допомогою Excel VBA Нам лише потрібно, щоб VBA Нам не потрібно так багато кліків для виконання завдання, а це економить наш час.

Visual Basic для додатків ( VBA ) - це модель програмування та ізольована програма, яка найчастіше зустрічається в Microsoft Office Це аналітичний інструмент, часто доступний у вигляді Надбудови для Excel який оптимізує ручні операції, такі як монотонна робота, що займає багато часу. Він також може генерувати CSV Отже, давайте розглянемо кілька прикладів, як роздрукувати файл Excel у форматі PDF з автоматичним ім'ям файлу.

1. друк книги в PDF та автоматичне збереження імені файлу в Excel

Припустимо, ми хочемо роздрукувати всю книгу і зберегти ім'я файлу так, як ми вказали в нашому коді. Тепер припустимо, що ми хочемо зберегти PDF-файл на нашому комп'ютері Локальний диск (E:) Як ми бачимо на малюнку нижче, розташування не містить ніяких pdf файлів. Після запуску коду VBA ми зможемо побачити бажане PDF у цьому місці на нашому комп'ютері.

З Excel VBA користувачі можуть легко скористатися кодом, який виконує роль ексель-меню зі стрічки. Для того, щоб скористатися VBA код для друку pdf і збереження з автоматичним ім'ям файлу, давайте виконаємо процедуру.

КРОКИ:

  • По-перше, зверніться до Розробник вкладку зі стрічки.
  • По-друге, від Код категорії, натисніть на кнопку Visual Basic для відкриття Редактор Visual Basic або натисніть Alt + F11 для відкриття Редактор Visual Basic .

  • Замість цього ви можете просто клацнути правою кнопкою миші на аркуші і перейти до Переглянути код Ви також зможете відвідати Редактор Visual Basic .

  • Про це буде повідомлено в Редактор Visual Basic де ми записуємо наші коди для створення таблиці з діапазону.
  • По-третє, натисніть на Модуль від Вставка рядок меню, що випадає.

  • Це дозволить створити Модуль у вашій робочій книжці.
  • І, скопіюйте та вставте VBA код, вказаний нижче.

Код VBA:

 Sub Print_Workbook() Dim loc As String loc = "E:\Workbook.pdf" ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • Запустіть код, натиснувши на кнопку F5 на клавіатурі.

  • Нарешті, ви можете побачити, що ім'я файлу PDF, Робочий зошит тепер знаходиться за цим шляхом на вашому комп'ютері. Це означає, що ім'я файлу автоматично зберігається.

  • І, нарешті, якщо ви повернетесь до своєї робочої книги, то побачите кілька пунктирних ліній. Це тому, що файл вже готовий до друку.

Пояснення коду VBA

 Sub Print_Workbook() 

Sub це частина коду, яка використовується для обробки роботи в коді, але не повертає ніякого значення. Вона також відома як підпроцедура. Отже, назвемо нашу процедуру Print_Workbook() .

 loc = "E:\Workbook.pdf" 

Цей рядок призначений для розташування та імені pdf-файлу. Тут ми зберігаємо наш файл у папці E: на наш комп'ютер і назвати файл Робочий зошит .

 Активна книга.Експорт у фіксованому форматі Тип:=xlTypePDF, ім'я файлу:=loc 

Цей рядок коду призначений для експорту файлу Excel у формат PDF та підготовки його до друку.

 End Sub 

На цьому процедура буде завершена.

Читати далі: Експорт Excel у PDF за допомогою гіперпосилань (2 швидких способи)

2. автоматичне збереження активного аркуша у форматі PDF

Розглянемо ще один приклад друку активного аркуша в pdf і автоматичного збереження імені файлу за допомогою Excel VBA .

КРОКИ:

  • По-перше, зайдіть на сайт Розвивати r вкладку зі стрічки.
  • По-друге, натисніть на Visual Basic для відкриття Редактор Visual Basic .
  • Ще один спосіб відкрити Редактор Visual Basic це просто натиснути Alt + F11 .
  • Або натисніть правою кнопкою миші на аркуші, потім виберіть Переглянути код .
  • Далі перейдіть за посиланням Вставка та оберіть Модуль з випадаючого меню.
  • І, це відкриє вікно візуального програмування.
  • Після цього скопіюйте та вставте VBA код нижче.

Код VBA:

 Sub Print_Sheet() Dim loc As String loc = "E:\Worksheet.pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • Далі необхідно натиснути кнопку клавіша F5 або натисніть на кнопку Запустити заміну для запуску коду.

  • Як і в попередньому прикладі, файл зберігається у форматі PDF з автоматичним ім'ям файлу.

Якщо ви читали example1's пояснення коду, ви це теж зрозумієте.

Читати далі: Макрос Excel: Зберегти у форматі PDF з датою у назві файлу (4 приклади)

3. друк PDF-файлу з Excel за допомогою VBA в діапазоні

Розглянемо ще один приклад використання Excel VBA для друку активного аркуша в pdf і автоматичного збереження імені файлу.

КРОКИ:

  • Для початку натисніть на кнопку Розробник вкладка на стрічці.
  • По-друге, запустити Редактор Visual Basic натиснувши на Visual Basic .
  • Крім того, ви можете отримати доступ до Редактор Visual Basic натиснувши на кнопку Alt + F11 .
  • Або, клацніть правою кнопкою миші на аркуші та оберіть Переглянути код з меню.
  • Далі оберіть пункт Модуль з випадаючого списку під Вставка .
  • І з'явиться вікно візуального редактора.
  • Впишіть туди код.

Код VBA:

 Sub PrntPDF() ActiveWindow.SelectedSheets.PrintOut Copies:=1, _ Collate:=True, ActivePrinter:="Adobe PDF" Dim fnam As String fnam = Range("B4").Value End Sub 
  • Нарешті, натисніть кнопку клавіша F5 для запуску коду.

  • Після цього ви побачите, що у вказане місце на вашому комп'ютері додано PDF-файл з назвою "Робоча книга". При цьому ім'я файлу автоматично зберігається.

Читати далі: Друк діапазону в PDF за допомогою VBA в Excel (5 найпростіших прикладів)

4. Excel VBA для циклу по вибраному аркушу та друку PDF

Розглянемо ще один спосіб друку в PDF з автоматичним збереженням імені файлу.

КРОКИ:

  • Для початку відкрийте стрічку та оберіть пункт Розробник варіант.
  • Далі, щоб отримати доступ до Редактор Visual Basic натисніть на Visual Basic .
  • Натискання Alt + F11 також підніме питання Редактор Visual Basic .
  • Альтернативно, клацніть правою кнопкою миші аркуш і виберіть Переглянути код з меню, що з'явиться.
  • Наразі, від Вставка випадаючий список, вибрати Модуль .
  • Потім скопіюйте та вставте VBA код, який наведено нижче.

Код VBA:

 Sub PrntPDF1() Dim wrksht As Worksheet Dim sht As Variant Set sht = ActiveWindow.SelectedSheets For Each wrksht In sht wrksht.Select wrksht.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Next wrksht sht.Select End Sub 
  • Запустіть код, натиснувши на кнопку F5 ключ.

  • Зрештою, ви можете побачити, що файл PDF Робочої книги був завантажений у цю область на вашому комп'ютері. Як наслідок, ім'я файлу зберігається автоматично.

При цьому файл буде збережено під номером аркуша робочої книги.

Пояснення коду VBA

 Для Each wrksht In sht wrksht.Select wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=ThisWorkbook.Path & "/" & wrksht.Name & ".pdf" Next wrksht 

Цей рядок кодів циклу for призначений для експорту файлу excel у форматі pdf та друку файлу.

Читати далі: Excel VBA: Експорт у фіксований формат PDF з підгонкою до сторінки (3 приклади)

5. друк у PDF та інтуїтивне збереження імені файлу в Excel

А тепер розглянемо ще один спосіб збереження файлів Excel VBA в pdf і назвемо файл автоматична система.

КРОКИ:

  • Для початку відкрийте стрічку та оберіть Розробник з випадаючого меню.
  • Потім виберіть Visual Basic для відкриття Редактор Visual Basic .
  • На сьогоднішній день, на жаль, це не так. Редактор Visual Basic також можна отримати, натиснувши на кнопку Alt + F11 .
  • Крім того, ви можете клацніть правою кнопкою миші аркуш і виберіть Переглянути код у спливаючому меню.
  • Після цього оберіть Модуль від Вставка випадаюче меню.
  • Далі скопіюйте та вставте наступний код VBA.

Код VBA:

 Sub PrntPDF2() Dim loc As String loc = "E:\Sheet6.pdf" ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ filename:=loc, _ OpenAfterPublish:=False, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ Quality:=xlQualityStard, _ From:=1, To:=2 End Sub 
  • Нарешті, запустіть код, натиснувши F5 на клавіатурі і бачите результат.

  • Згодом ви побачите, що Робочий зошит PDF файл вже був збережений у цьому місці на Вашому комп'ютері, тому ім'я файлу зберігається автоматично.

Аналогічно, як і в попередньому прикладі, це також збереже файл pdf як номер аркуша.

Пояснення коду VBA

 ActiveSheet.ExportAsFixedFormat Тип:=xlTypePDF, ім'я файлу:=loc, OpenAfterPublish:=False, IncludeDocProperties:=True, IgnorePrintAreas:=False, Quality:=xlQualityStandard, From:=1, To:=2 

Кодовий блок призначений для друку та збереження excel-файлу у форматі pdf.

Читати далі: Друк у PDF та електронну пошту за допомогою VBA в Excel (2 корисних кейса)

6. функція VBA для автоматичного друку PDF та збереження імені файлу

Давайте розглянемо ще один спосіб друку в Excel VBA з автоматичним збереженням імені файлу. У цьому прикладі ми скористаємося функцією і збережемо файл у форматі PDF. Ми також скористаємося функцією Msgbox щоб видати нам повідомлення про те, чи збережено файл чи ні.

КРОКИ:

  • Для початку перейдіть на сторінку Розробник вкладка> Visual Basic > Вставка > Модуль .
  • Або, клацання правою кнопкою миші на робочому аркуші відкриється вікно, з якого перейдіть до пункту Переглянути код .
  • І це приведе вас до Редактор Visual Basic поле, де ми можемо написати Макроси VBA .
  • З іншого боку, нагнітання Alt + F11 також відкриє Редактор Visual Basic .
  • Після цього введіть VBA код.

Код VBA:

 Sub PrntPDF3() Dim wrks As Worksheet Dim wrkb As Workbook Dim snam As String Dim sloc As String Dim sf As String Dim slocf As String Dim myFile As Variant Dim l As Long On Error GoTo errHandler Set wrkb = ActiveWorkbook Set wrks = ActiveSheet sloc = wrkb.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc & "\" snam = wrks.Range("A1").Value & "Print" &wrks.Range("A2").Value & " PDF " & wrks.Range("A3").Value sf = snam & ".pdf" slocf = sloc & sf If PrintFile(slocf) Then l = MsgBox(vbQuestion + vbYesNo, "Файл існує") If l vbYes Then myFile = Application.GetSaveAsFilename(ПочатковеІм'яФайлу:=slocf, ФільтрФайлу:="PDFФайли(*.pdf),*.pdf",_Титул:="Ім'яФайлуЗберегти") If myFile "False" Then slocf = myFile Else Перейди на вихід з вікна End IfEnd If End If wrks.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Не друкувати" Відновити вихідний обробник End Sub Function PrintFile(rsFullPath As String) As Boolean PrintFile =CBool(Len(Dir$(rsFullPath))> 0) End Function 
  • І, щоб побачити результат, запустіть код, натиснувши на кнопку клавіша F5 .

  • Це з'явиться в Msgbox і переконайтеся, що PDF-файл готовий до друку.

  • Аналогічно, як і раніше, ви побачите, що в цьому місці на вашому комп'ютері вже збережений PDF-файл Робочої книги. В результаті, ім'я файлу зберігається за замовчуванням. Як ми задаємо ім'я файлу Роздрукувати PDF він зберіг ім'я файлу Друк PDF.

Якщо ви подивитеся на пояснення до попереднього коду, то зрозумієте рядки коду правильно. Вам не потрібно змінювати код, просто змініть діапазони відповідно до ваших уподобань. Ви можете скопіювати код і використовувати його в своїх робочих цілях.

Читати далі: Макрос Excel для збереження у форматі PDF з назвою файлу зі значення комірки (2 приклади)

7. код Excel VBA для друку в PDF та автоматичного збереження імені файлу

Розглянемо ще один метод Excel VBA для друку в PDF і автоматичного збереження імені файлу.

КРОКИ:

  • Для початку перейдіть на сторінку Розробник вкладка на стрічці.
  • По-друге, у розділі "Код" оберіть Visual Basic для запуску Редактор Visual Basic Для того, щоб відкрити Редактор Visual Basic натисніть Alt + F11 .
  • Крім того, ви можете просто клацнути правою кнопкою миші на аркуші і вибрати Переглянути код Звідси ви потрапите до Редактор Visual Basic також.
  • Це буде відображено в Редактор Visual Basic де напишемо код формування таблиці з діапазону.
  • По-третє, у випадаючому меню "Вставка" виберіть Модуль .
  • І, скопіюйте та вставте VBA код, вказаний нижче.

Код VBA:

 Sub PrintPDF4() Dim wrksht As Worksheet Dim wrkbk As Workbook Dim snam As String Dim sloc As String Dim sf As String Dim slocf As String Dim file As Variant On Error GoTo errHandler Set wrkbk = ActiveWorkbook Set wrksht = ActiveSheet sloc = wrkbk.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc & "\" snam = wrksht.Range("A1").Value & "\" &wrksht.Range("A2").Value & " - " & wrksht.Range("A3").Value sf = snam & ".pdf" slocf = sloc & sf wrksht.ExportAsFixedFormat Type:=xlTypePDF, filename:=slocf, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False MsgBox "Друк PDF:" & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Не надрукувати" ResumeexitHandler End Sub 
  • Потім виконайте код, натиснувши на кнопку RubSub або натиснувши кнопку F5 комбінація клавіш.

  • Зокрема, це стосується Msgbox з'явиться.

  • Файл зберігається у форматі PDF з таким же автоматизованим ім'ям, як і в попередньому прикладі.

Пояснення коду VBA

 sloc = wrkbk.Path If sloc = "" Then sloc = Application.DefaultFilePath End If sloc = sloc & "\" snam = wrksht.Range("A1").Value & " - " & wrksht.Range("A2").Value & " - " & wrksht.Range("A3").Value 

Вони призначені для отримання активної папки робочої книги, якщо робоча книга збережена.

 sf = snam & ".pdf" slocf = sloc & sf 

При цьому буде створено ім'я за замовчуванням для збереження файлів.

 wrksht.ExportAsFixedFormat Тип:=xlTypePDF, ім'я файлу:=slocf, Якість:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False 

Цей блок просто експортує файл Excel в PDF в поточну папку.

 MsgBox "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" Resume exitHandler 

Це дозволить нам побачити повідомлення про підтвердження з інформацією про файл у форматі Microsoft Excel.

Читати далі: Друк у PDF за допомогою кнопки макросу в Excel (5 варіантів макросів)

8. друк певного аркуша Excel з автоматичним ім'ям файлу

Розглянемо інший метод Excel VBA для друку в PDF і автоматичного збереження імені файлу.

КРОКИ:

  • В першу чергу, оберіть Розробник вкладку зі стрічки.
  • По-друге, в рамках Код категорію, виберіть Visual Basic для запуску Редактор Visual Basic Крім того, натисніть Alt + F11 для запуску Редактор Visual Basic .
  • Замість цього клацніть правою кнопкою миші на аркуші і виберіть Переглянути код .
  • Це відобразиться у вікні Редактор Visual Basic де напишемо наш код для формування таблиці з діапазону.
  • По-третє, виберіть модуль у випадаючому меню "Вставка".
  • Далі, скопіюйте та вставте VBA код нижче.

Код VBA:

 Sub PrintPDF5() Dim loc As String Dim r As Range loc = "E:\PDF File.pdf" Set rng = Sheets("IT").Range("A1:F13") rng.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc End Sub 
  • Крім того, запустіть код, натиснувши на кнопку RubSub або за допомогою кнопки F5 комбінація клавіш.

  • Цей файл зберігається у форматі PDF з такою ж назвою, як і в попередньому прикладі.

Пояснення коду VBA

 Dim loc As String Dim r As Range loc = "E:\PDF File.pdf" Set rng = Sheets("IT").Range("A1:F13") 

Ці блоки кодів призначені для створення та присвоєння змінних.

 rng.ЕкспортУФіксованийФормат Тип:=xlTypePDF, _ ім'я файлу:=loc 

Це дозволить зберегти ряд даних файлів у форматі PDF.

Читати далі: Як конвертувати Excel в PDF без втрати форматування (5 ефективних способів)

9. Автоматичне збереження імені файлу під час друку в PDF в Excel VBA

Розглянемо ще один метод Excel VBA для друку в PDF і автоматичного збереження імені файлу.

КРОКИ:

  • Для початку оберіть пункт Розробник вкладку зі стрічки.
  • По-друге, виберіть Visual Basic від Код для того, щоб відкрити Редактор Visual Basic Клац! Alt + F11 для запуску Редактор Visual Basic .
  • Ви також можете клацнути правою кнопкою миші на аркуші і вибрати Переглянути код Звідси ви також потрапите до Редактор Visual Basic .
  • Наразі ми бачимо, що Редактор Visual Basic де напишемо код створення таблиці з діапазону.
  • Далі оберіть Модуль від Вставка рядок меню, що випадає.
  • Потім скопіюйте та вставте VBA код, який наведено нижче.

Код VBA:

 Sub Prnt_PDF() Call Automatic_Name End Sub Function Automatic_Name() As Boolean ' Копіює аркуші в новий PDF файл для надсилання електронною поштою Dim sht As String, file As String, loc As String Dim s As String Application.ScreenUpdating = False sht = ActiveSheet.Name file = ActiveWorkbook.Name loc = ActiveWorkbook.Path s = loc & "\" & sht & ".pdf" On Error Resume NextActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Збережено у вигляді .pdf-файлу:" & vbCrLf& vbCrLf& vbCrLf& SvAs & _ "Перегляньте файл .pdf"Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Неможливо зберегти як PDF." Automatioc_Name = False EndMacro: End Function 
  • Після цього код буде виконаний після натискання кнопки RubSub або за допомогою кнопки F5 комбінація клавіш.

Пояснення коду VBA

 sht = Ім'яАктивногоАркуша.ім'я file = Ім'яАктивноїРобочоїКниги loc = ШляхАктивноїРобочоїКниги s = loc & "\" & sht & ".pdf" 

Для отримання файлу у форматі pdf та збережіть назву pdf.

 On Error Resume Next ActiveSheet.PageSetup.PrintQuality = 600 err.Clear On Error GoTo 0 

Це просто встановлює якість друку.

 On Error GoTo RefLibError ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=s, Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True On Error GoTo 0 SaveOnly: MsgBox "Збережено у вигляді файлу .pdf: " & vbCrLf & vbCrLf & SvAs & _ "Перегляньте файл формату .pdf".PDF." Automatioc_Name = False 

Ці рядки будуть інструкціями для користувача, як відправити файл на друк у форматі pdf.

Читати далі: Як зберегти Excel у форматі PDF без відсікання (4 відповідні способи)

Висновок

Вищезазначені методи допоможуть вам виконати цю роботу з Друк у PDF та збереження автоматичного імені файлу в Excel VBA Сподіваюся, це допоможе вам! Якщо у вас є якісь питання, пропозиції або відгуки, будь ласка, повідомте нам про це в розділі коментарів. Або ви можете переглянути інші наші статті в розділі ExcelWIKI.com блог!

Г’ю Вест — досвідчений тренер і аналітик Excel із понад 10-річним досвідом роботи в галузі. Він має ступінь бакалавра з бухгалтерського обліку та фінансів і ступінь магістра з ділового адміністрування. Г’ю має пристрасть до викладання та розробив унікальний підхід до викладання, який легко зрозуміти та дотримуватися. Його експертне знання Excel допомогло тисячам студентів і професіоналів у всьому світі вдосконалити свої навички та досягти успіху в кар’єрі. У своєму блозі Г’ю ділиться своїми знаннями зі світом, пропонуючи безкоштовні навчальні посібники з Excel та онлайн-навчання, щоб допомогти окремим особам і компаніям повністю розкрити свій потенціал.