Перейти до основного контенту

Завантажте PDF за допомогою VBA в Excel

3 хв читання
2139 переглядів

PDF (Portable Document Format) - це формат документа, який дозволяє зберігати текст, зображення та іншу інформацію в універсальному і доступному для читання вигляді. Він широко використовується для обміну документами та забезпечує незалежність від програмного забезпечення, операційної системи та пристрою. Можливість створювати та завантажувати PDF-файли безпосередньо з Excel за допомогою VBA (Visual Basic for Applications) надає користувачеві потужний інструмент для автоматизації та спрощення робочого процесу.

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

Для створення PDF-файлу за допомогою VBA в Excel можна використовувати бібліотеки та засоби програмування, такі як Adobe Acrobat, iTextSharp та інші. Вони надають функціонал для створення і управління PDF-документами, включаючи визначення розмірів сторінки, оформлення тексту і зображень, Створення посилань та інших елементів. За допомогою VBA та цих інструментів можна створювати власні PDF-файли з різними функціональними можливостями в Excel.

Приклад використання VBA для створення та завантаження PDF-файлу в Excel:





Sub SaveAsPDF()


'Вимкнути відображення екрана


Application.ScreenUpdating = False


Dim ws As Worksheet


Dim rng As Range


'Виберіть робочий аркуш і діапазон для збереження в PDF


Set ws = ThisWorkbook.Worksheets ("Лист1")


Set rng = ws.Range("A1:D10")


'Створити та налаштувати об'єкт PDF


Dim pdf As Object


Set pdf = CreateObject("AcroExch.PDDoc")


'Відкрити об'єкт PDF


pdf.Open


'Створити сторінку PDF з розмірами діапазону


pdf.CreatePDDoc


pdf.PDDocMediaSize = 3


pdf.PDDocDefaultPageRotation = 0


pdf.PDDocDefaultPageWidth = rng.Width


pdf.PDDocDefaultPageHeight = rng.Height


'Додати вміст діапазону на сторінку PDF


Dim gfx As Object


Set gfx = pdf.CreateGFX


Dim hdc As Long


hdc = gfx.GetHDC


rng.CopyPicture xlScreen, xlPicture


gfx.ReleaseHDC hdc


'Зберегти PDF-файл


pdf.Save ("С:\Путь\к\файлу.pdf")


pdf.Close


'Увімкнути відображення екрана


Application.ScreenUpdating = True


End Sub

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

Методи перетворення Excel у PDF за допомогою VBA

1. Метод з використанням "функції експорту". Цей метод дозволяє експортувати всю активну книгу Excel у формат PDF за допомогою одного коду VBA. Приклад:

Sub ConvertExcelToPDF_Export()ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="путь_к_файлу.pdf", _Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _OpenAfterPublish:=FalseEnd Sub

2. Метод з використанням "функції збереження". Цей метод дозволяє вибрати діапазон комірок і зберегти його у форматі PDF за допомогою коду VBA. Приклад:

Sub ConvertExcelToPDF_SaveAs()Dim ws As WorksheetSet ws = ThisWorkbook.Sheets("Лист1")ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:="путь_к_файлу.pdf", _Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _OpenAfterPublish:=FalseEnd Sub

3. Метод з використанням "функції Копіювання". Цей метод дозволяє скопіювати діапазон комірок і вставити його в нову робочу книгу, яку можна зберегти у форматі PDF. Приклад:

Sub ConvertExcelToPDF_CopyPaste()Dim ws As WorksheetSet ws = ThisWorkbook.Sheets("Лист1")ws.Range("A1:E10").CopyWorkbooks.AddActiveSheet.PasteApplication.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="путь_к_файлу.pdf", _Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _OpenAfterPublish:=FalseActiveWorkbook.Close SaveChanges:=FalseEnd Sub

Виберіть найбільш підходящий метод перетворення у формат PDF за допомогою VBA, і Вам буде зручно створювати PDF-файли безпосередньо з Excel.

Встановлення та налаштування VBA для роботи з PDF

Для роботи з PDF документами в Excel за допомогою VBA, необхідно встановити і налаштувати кілька компонентів. В першу чергу, потрібно переконатися, що на вашому комп'ютері встановлений Adobe Acrobat або інша програма, що дозволяє працювати з PDF файлами.

Після установки Adobe Acrobat, потрібно додати посилання на Acrobat в ваш проект VBA в Excel. Для цього дотримуйтесь інструкцій:

  1. Відкрийте Visual Basic Editor, натиснувши Alt + F11 в Excel.
  2. Виберіть у меню Tools пункт References.
  3. У діалоговому вікні знайдіть і поставте галочку навпроти "Acrobat"або" Adobe Acrobat".
  4. Натисніть кнопку "OK", щоб застосувати зміни.

Після того, як посилання на Acrobat додана в проект, ви можете використовувати VBA для створення, відкриття і збереження PDF файлів прямо з Excel.

Нижче наведено приклад простий VBA процедури для створення PDF файлу з активного листа Excel:

Sub SaveAsPDF()Dim ws As WorksheetDim pdfPath As StringSet ws = ActiveSheetpdfPath = "C:\Documents\output.pdf"ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPathEnd Sub

В даному прикладі процедура saveaspdf зберігає Активний лист Excel в PDF файл по вказаному шляху. Шлях до файлу можна змінити відповідно до ваших вимог.

Використовуйте дані вказівки для установки і настройки VBA для роботи з PDF в Excel. Тепер ви можете легко створювати, відкривати і зберігати PDF файли прямо з вашої таблиці Excel.

Створення макросу для завантаження PDF в Excel

Для створення такого макросу необхідно використовувати мову VBA (Visual Basic for Applications), вбудований в Excel. Ось приклад простого макросу, який завантажує PDF файл за вказаним посиланням:

Sub Скачать_PDF()Dim myURL As StringDim myPath As StringmyURL = "http://example.com/file.pdf" ' замените ссылку на нужнуюmyPath = "C:\Downloads\file.pdf" ' замените путь сохранения на нужный'загрузка файла PDFWith CreateObject("WinHttp.WinHttpRequest.5.1").Open "GET", myURL, False.sendIf .Status = 200 ThenSet oStream = CreateObject("ADODB.Stream")oStream.OpenoStream.Type = 1oStream.Write .responseBodyoStream.SaveToFile myPath, 2oStream.CloseEnd IfEnd WithEnd Sub

Для використання цього макросу, відкрийте редактор VBA, натиснувши Alt + F11 в Excel. Потім вставте наведений вище код у новий модуль.

Потім ви можете змінити значення змінних myURL та myPath у коді, щоб вказати потрібне посилання на файл та шлях збереження.

Після цього ви можете викликати макрос, натиснувши Alt + F8 і вибравши його зі списку доступних макросів. Після виконання макросу, PDF файл буде завантажений за вказаним посиланням і збережений за вказаним шляхом.

Це простий приклад макросу для скачування PDF файлів в Excel. Ви можете розширити його функціональність і додати обробку помилок або Додаткові дії після завантаження файлу.

Приклади використання VBA для скачування PDF файлів

Введення:

VBA (Visual Basic for Applications) - це мова програмування, яка використовується в програмах Microsoft Office, включаючи Excel. У Excel VBA ми можемо використовувати його потужні можливості для автоматизації різних завдань, включаючи завантаження файлів з Інтернету, включаючи PDF.

1. Базовий приклад:

Нижче наведено приклад коду VBA, який демонструє, як завантажити PDF файл за допомогою URL-адреси:

Sub DownloadPDF()Dim URL As StringDim Filepath As StringURL = "https://www.example.com/example.pdf"Filepath = "C:\Downloads\example.pdf"' Создаем новый объект HTTPDim http As ObjectSet http = CreateObject("MSXML2.ServerXMLHTTP")' Отправляем GET запрос к URLhttp.Open "GET", URL, Falsehttp.send' Сохраняем полученный файлIf http.Status = 200 ThenWith CreateObject("Adodb.Stream").Type = 1.Open.Write http.responseBody.SaveToFile Filepath, 2.CloseEnd WithEnd If' Освобождаем ресурсыSet http = NothingEnd Sub

2. Завантаження файлу з параметрами:

Якщо URL-адреса включає параметри (наприклад, для отримання файлу з певними налаштуваннями), то ми можемо змінити значення параметрів у коді VBA. Нижче наведено приклад коду, де ми додаємо параметр "Формат = A4" до URL-адреси:

Sub DownloadPDFWithParams()Dim URL As StringDim Filepath As StringURL = "https://www.example.com/example.pdf?format=A4"Filepath = "C:\Downloads\example.pdf"' Остальной код остается неизменным' . End Sub

3. Завантаження декількох файлів:

Ми також можемо використовувати цикли у VBA для завантаження декількох файлів за різними URL-адресами. Нижче наведено приклад коду, який завантажує три файли:

Sub DownloadMultiplePDFs()Dim URLs As VariantDim Filepath As StringDim i As IntegerURLs = Array("https://www.example.com/example1.pdf", "https://www.example.com/example2.pdf", "https://www.example.com/example3.pdf")Filepath = "C:\Downloads\"For i = LBound(URLs) To UBound(URLs)' Остальной код остается неизменным' . Next iEnd Sub

Укладення:

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