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 Пользователи могут легко использовать код, который действует как меню excel с ленты. Чтобы использовать 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: на нашем компьютере и присвойте файлу имя Рабочая тетрадь .

 ActiveWorkbook.ExportAsFixedFormat Тип:=xlTypePDF, имя файла:=loc 

Эта строка кода предназначена для экспорта файла excel в формат PDF и подготовки его к печати.

 End Sub 

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

Читать далее: Экспорт Excel в PDF с гиперссылками (2 быстрых метода)

2. Автоматическое сохранение активного рабочего листа в формате PDF

Рассмотрим другой пример печати активного листа в pdf и автоматического сохранения имени файла с помощью функции Excel VBA .

ШАГИ:

  • Сначала зайдите в Разработайте вкладку r на ленте.
  • Во-вторых, нажмите на Visual Basic чтобы открыть Редактор Visual Basic .
  • Другой способ открыть Редактор Visual Basic это просто нажать Alt + F11 .
  • Или щелкните правой кнопкой мыши на листе, затем выберите Посмотреть код .
  • Далее, перейдите к Вставка и выберите Модуль из выпадающего меню.
  • Откроется окно visual basic.
  • После этого скопируйте и вставьте код VBA ниже.

Код VBA:

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

  • Аналогично предыдущему примеру, файл сохраняется в формате PDF с автоматическим именем файла.

Если вы читаете пример1 кодовое объяснение, вы тоже это поймете.

Читать далее: Макрос Excel: сохранение в формате PDF с датой в имени файла (4 подходящих примера)

3. Печать PDF-файла из Excel с помощью VBA в диапазоне

Рассмотрим еще один пример использования Excel VBA для печати активного листа в pdf и автоматического сохранения имени файла.

ШАГИ:

  • Чтобы начать, нажмите кнопку Разработчик на вкладке ленты.
  • Во-вторых, запустите Редактор Visual Basic нажав на Visual Basic .
  • В качестве альтернативы вы можете обратиться к Редактор Visual Basic нажав Alt + F11 .
  • Или, щелкните правой кнопкой мыши на листе и выберите Посмотреть код из меню.
  • Затем выберите Модуль из выпадающего списка под Вставка .
  • Появится окно visual basic.
  • Напишите код там.

Код 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-файл с именем Workbook был добавлен в это место на вашем компьютере. В результате имя файла автоматически сохраняется.

Читать далее: Печать диапазона в 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

 For 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 для сохранения файлов excel в 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:=xlQualityStandard, _ From:=1, To:=2 End Sub 
  • Наконец, запустите код, нажав кнопку F5 на клавиатуре, и вы увидите результат.

  • Впоследствии вы увидите, что Рабочая тетрадь PDF файл уже был сохранен в этом месте на вашем компьютере. В результате имя файла сохраняется автоматически.

Аналогично, как и в предыдущем примере, это также сохранит файл pdf в виде номера листа.

Объяснение кода VBA

 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=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 и автоматического сохранения имени файла. В этом примере мы будем использовать функцию и сохранять файл в 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, "File Exists") If l vbYes Then myFile = Application.GetSaveAsFilename(InitialFileName:=slocf, FileFilter:="PDF Files (*.pdf), *.pdf", _ Title:="Save File Name") If myFile "False" Then slocf = myFile Else GoTo exitHandler 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 "Not Print" Resume exitHandler End Sub Function PrintFile(rsFullPath As String) As Boolean PrintFile.CBool(Len(Dir$(rsFullPath))> 0) End Function 
  • И запустите код, чтобы увидеть результат, нажав кнопку клавиша F5 .

  • Это появится в Msgbox и убедитесь, что файл PDF теперь готов к печати.

  • Аналогично, как и раньше, вы заметите, что файл Workbook 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 "Print PDF: " & vbCrLf & strPathFile exitHandler: Exit Sub errHandler: MsgBox "Not Print" ResumeexitHandler End Sub 
  • Затем выполните код, нажав на кнопку RubSub или нажать кнопку F5 сочетание клавиш.

  • В частности, тогда Msgbox появится.

  • Файл сохраняется в формате PDF с тем же именем автоматического файла, что и в предыдущем примере.

Объяснение кода VBA

 sloc = wrkbk.Path Если 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 

Этот блок просто экспортирует файл 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 В качестве альтернативы нажмите Альт + 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.ExportAsFixedFormat Type:=xlTypePDF, _ filename:=loc 

Это позволит сохранить ряд данных файла в формате PDF.

Читать далее: Как преобразовать Excel в PDF без потери форматирования (5 эффективных способов)

9. автоматическое сохранение имени файла при печати в PDF в Excel VBA

Давайте рассмотрим еще один метод Excel VBA для печати в PDF и автоматического сохранения имени файла.

ШАГИ:

  • Для начала выберите Разработчик на вкладке ленты.
  • Во-вторых, выберите Visual Basic из Код область, чтобы открыть Редактор Visual Basic . Нажмите Альт + 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 "Saved as .pdf file: " & vbCrLf & vbCrLf & SvAs & _ "Review .pdf document".Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Unable to save as PDF." Automatioc_Name = False EndMacro: End Function 
  • После этого код будет выполняться при нажатии кнопки RubSub или с помощью кнопки F5 сочетание клавиш.

Объяснение кода VBA

 sht = ActiveSheet.Name file = ActiveWorkbook.Name loc = ActiveWorkbook.Path 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 "Saved as .pdf file: " & vbCrLf & vbCrLf & SvAs & _ "Review .pdf document." Automatic_Name = True GoTo EndMacro RefLibError: MsgBox "Unable to save asPDF." Automatioc_Name = False 

Эти строки будут инструктировать пользователя о том, как отправить файл на печать в формате pdf.

Читать далее: Как сохранить Excel в формате PDF без обрезания (4 подходящих способа)

Заключение

Приведенные выше методы помогут вам выполнить эту работу из Печать в PDF и сохранение автоматического имени файла в Excel VBA Надеюсь, это вам поможет! Если у вас есть вопросы, предложения или отзывы, пожалуйста, сообщите нам об этом в разделе комментариев. Вы также можете ознакомиться с другими нашими статьями в разделе ExcelWIKI.com блог!

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.