Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

Как сохранить лист в формате PDF и отправить его как вложение через Outlook?

Author Siluvia Last modified

В повседневной работе вы можете часто сталкиваться с ситуациями, когда вам нужно поделиться определенным листом с коллегами или клиентами, но при этом важно, чтобы формат файла был фиксированным и безопасным. Отправка листа в виде PDF-файла через Outlook является распространенной необходимостью, особенно для документирования отчетов, отправки счетов или обмена окончательными данными, которые не должны легко изменяться. Традиционно это включает ручное сохранение листа в формате PDF, открытие Outlook, написание письма, добавление PDF-файла и отправку — что утомительно и отнимает много времени, особенно если это повторяется часто или при работе с несколькими листами.

Эта статья проведет вас пошагово через процесс автоматизации преобразования листа в PDF и немедленного прикрепления его к электронному письму в Outlook непосредственно из Excel, помогая вам значительно сэкономить время и избежать повторяющейся ручной работы. Вы найдете решение с использованием VBA-кода, а также подробности о работе, преимуществах, сценариях применения и практических советах.

Сохраните лист в формате PDF и отправьте его как вложение с помощью VBA-кода


Сохраните лист в формате PDF и отправьте его как вложение с помощью VBA-кода

Чтобы ускорить процесс экспорта рабочего листа Excel в формат PDF и отправки его через Outlook, вы можете использовать следующий VBA-код. Этот подход особенно полезен, если вам регулярно нужно отправлять персонализированные отчеты, счета или другие снимки данных прямо из Excel, так как он полностью автоматизирует шаги сохранения и отправки.

Перед применением этого метода убедитесь, что Microsoft Outlook установлен и настроен как ваш почтовый клиент по умолчанию. Код работает лучше всего, когда макросы включены в вашей среде Excel.

1. Откройте лист, который вы хотите сохранить и отправить в формате PDF. Нажмите Alt + F11 одновременно, чтобы запустить редактор Microsoft Visual Basic for Applications (VBA).

2. В окне VBA перейдите в меню и нажмите Вставить > Модуль. Это создаст новый модуль кода. Затем скопируйте и вставьте следующий VBA-код в окно Код модуля.

VBA код: Сохраните лист в формате PDF и отправьте его как вложение

Sub Saveaspdfandsend()
Dim xSht As Worksheet
Dim xFileDlg As FileDialog
Dim xFolder As String
Dim xYesorNo As Integer
Dim xOutlookObj As Object
Dim xEmailObj As Object
Dim xUsedRng As Range

Set xSht = ActiveSheet
Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)

If xFileDlg.Show = True Then
   xFolder = xFileDlg.SelectedItems(1)
Else
   MsgBox "You must specify a folder to save the PDF into." & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Must Specify Destination Folder"
   Exit Sub
End If
xFolder = xFolder + "\" + xSht.Name + ".pdf"

'Check if file already exist
If Len(Dir(xFolder)) > 0 Then
    xYesorNo = MsgBox(xFolder & " already exists." & vbCrLf & vbCrLf & "Do you want to overwrite it?", _
                      vbYesNo + vbQuestion, "File Exists")
    On Error Resume Next
    If xYesorNo = vbYes Then
        Kill xFolder
    Else
        MsgBox "if you don't overwrite the existing PDF, I can't continue." _
                    & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Exiting Macro"
        Exit Sub
    End If
    If Err.Number <> 0 Then
        MsgBox "Unable to delete existing file.  Please make sure the file is not open or write protected." _
                    & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Unable to Delete File"
        Exit Sub
    End If
End If

Set xUsedRng = xSht.UsedRange
If Application.WorksheetFunction.CountA(xUsedRng.Cells) <> 0 Then
    'Save as PDF file 
    xSht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=xFolder, Quality:=xlQualityStandard
    
    'Create Outlook email 
    Set xOutlookObj = CreateObject("Outlook.Application")
    Set xEmailObj = xOutlookObj.CreateItem(0)
    With xEmailObj
        .Display
        .To = ""
        .CC = ""
        .Subject = xSht.Name + ".pdf"
        .Attachments.Add xFolder
        If DisplayEmail = False Then
            '.Send
        End If
    End With
Else
  MsgBox "The active worksheet cannot be blank"
  Exit Sub
End If
End Sub

3. После вставки кода нажмите F5 или кнопку Выполнить в редакторе VBA, чтобы выполнить макрос. Появится диалоговое окно выбора папки. Выберите целевую папку, где должен быть сохранен PDF-файл, затем нажмите OK для продолжения.

run vba code to select a folder to save this PDF file

Примечания и практические советы:

1. Макрос создает PDF-файл с тем же именем, что и лист, сохраненный в выбранной вами папке.
2. Если вы попытаетесь запустить код, когда активный лист пуст, вы увидите предупреждающее диалоговое окно, как показано на скриншоте ниже. Это предотвращает случайное сохранение и отправку пустого PDF. Чтобы избежать этого, убедитесь, что в листе есть содержимое перед запуском макроса.

If the active worksheet is blank,a warning prompt box is popped out

4. После завершения процесса открывается новое окно электронной почты Outlook с прикрепленным PDF-файлом. Поле темы предварительно заполняется именем листа с расширением ".pdf"; вы можете отредактировать текст письма, добавить получателей и отправить по мере необходимости. Это снижает количество ошибок и повышает эффективность по сравнению с ручным прикреплением.

a new Outlook email is created with the PDF file as an attachment

Примечание: Макрос работает только если Microsoft Outlook установлен и настроен как почтовый клиент по умолчанию. Если вы используете другую программу электронной почты, это решение может не применяться.

Этот подход, основанный на VBA, наиболее эффективен, когда вам регулярно нужно распространять готовые листы в виде PDF-вложений и минимизировать повторяющиеся ручные шаги. Его ограничения включают зависимость от Outlook, невозможность обработки нескольких листов одновременно и необходимость включения макросов. Для более сложных рабочих процессов, таких как отправка нескольких листов за один раз или дополнительная автоматизация, рассмотрите использование надстроек Excel или встроенных функций.

Альтернативное решение: Если VBA-макросы не подходят для вашей среды, например, когда макросы ограничены, вы можете вручную использовать встроенную функцию Excel Экспорт или Сохранить как, чтобы сохранить ваш лист в формате PDF, а затем прикрепить и отправить его в Outlook. Этот метод, хотя и требует больше шагов, доступен повсеместно без специальных разрешений или знаний скриптинга.


Легко сохраните лист или несколько листов как отдельные PDF-файлы за один раз:

Утилита Разделить книгу Kutools для Excel поможет вам легко сохранить лист или несколько листов как отдельные PDF-файлы за один раз, как показано в демо ниже. Скачайте и попробуйте прямо сейчас! (30-дневная бесплатная пробная версия)

save multiple worksheets as separate PDF files by kutools


Связанные статьи:

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP по нескольким значениям | Многолистовой поиск | Распознавание нечетких соответствий ...
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ...
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгой и листами | Библиотека автотекста | Выбор даты | Объединить данные | Зашифровать/расшифровать ячейки | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр жирный/курсив/зачеркнутый...) ...
Топ15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ полезных формул (Расчет возраста на основе даты рождения, ...) |19 инструментов для вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое
Используйте Kutools на предпочитаемом вами языке — поддерживает Английский, Испанский, Немецкий, Французский, Китайский и более40 других языков!

Повысьте свои навыки работы в Excel с помощью Kutools для Excel и ощутите эффективность на новом уровне. Kutools для Excel предлагает более300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы выбрать функцию, которая вам нужнее всего...


Office Tab добавляет вкладки в Office и делает вашу работу намного проще

  • Включите режим вкладок для редактирования и чтения в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна вместо новых отдельных окон.
  • Увеличьте свою продуктивность на50% и уменьшите количество щелчков мышью на сотни ежедневно!

Все надстройки Kutools. Один установщик

Пакет Kutools for Office включает надстройки для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro — идеально для команд, работающих в разных приложениях Office.

Excel Word Outlook Tabs PowerPoint
  • Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
  • Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
  • Совместная работа — максимальная эффективность между приложениями Office
  • 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
  • Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек