KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

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

АвторSiluviaДата изменения

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

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

Сохранение листа как Файлы PDF и отправка его по электронной почте как вложения с помощью кода VBA


Сохранение листа как Файлы PDF и отправка его по электронной почте как вложения с помощью кода VBA

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

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

1. Откройте лист, который вы хотите сохранить и отправить в формате PDF. Нажмите одновременно Alt+F11, чтобы открыть редактор Microsoft Visual Basic для приложений (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, затем нажмите ОК, чтобы продолжить.

запустить код VBA для выбора папки для сохранения этого PDF-файла

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

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

Если активный лист пуст, появляется предупреждающее сообщение

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

создается новое сообщение Outlook с PDF-файлом в качестве вложения

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

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

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


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

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

сохранение нескольких листов как отдельных PDF-файлов с помощью Kutools


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

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

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул
Супер ПОИСК:VLookup по нескольким критериям  |  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.

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