Как отправить диапазон ячеек по электронной почте через Outlook из Excel?
В повседневной работе с Excel часто возникает ситуация, когда отчёт уже готов, но отправить нужно лишь часть данных конкретному получателю. Например, вы можете захотеть передать важную информацию из выбранного диапазона ячеек, а не весь файл книги, обеспечивая тем самым конфиденциальность и релевантность. Естественно, большинство пользователей предпочитают решения, не требующие ручного переключения в Outlook или копирования и вставки содержимого. Существуют ли практичные и эффективные способы отправки заданного диапазона ячеек непосредственно из Excel?
В этом руководстве представлены различные способы отправки выделенных ячеек через Outlook — от встроенных функций Excel до решений на основе VBA — чтобы оптимизировать ваш рабочий процесс и минимизировать ручные операции. Вы узнаете, как отправлять диапазон как вложение, встраивать ячейки прямо в тело письма, сохранять диапазоны в виде изображений или PDF перед отправкой, а также использовать устаревшие почтовые функции Excel. Кроме того, руководство охватывает ключевые этапы настройки, анализ типичных сценариев, советы по устранению неполадок и практические рекомендации для достижения наилучших результатов.
Отправка диапазона ячеек в виде вложения из Excel с помощью кода VBA
Отправка диапазона ячеек в теле письма из Excel с помощью кода VBA
Отправка диапазона ячеек в виде вложения из Excel с помощью кода VBA
Если вам нужно передать только определённый набор данных, не предоставляя доступ ко всей книге, просто выделите нужный диапазон ячеек и отправьте его в виде файла — например, в формате .xlsx или .xls — через Outlook. Это решение идеально подходит, когда получателю требуется ознакомиться лишь с частью отчёта или когда важна конфиденциальность информации. Ниже приведены шаги по настройке и использованию кода VBA для автоматизации этого процесса:
1. Откройте нужную вам рабочую книгу Excel. Нажмите ALT + F11, чтобы открыть окно Microsoft Visual Basic для приложений, где можно вставлять и редактировать код VBA.
2. Нажмите Вставка > Модуль, чтобы создать новый модуль для вашего кода. Вставьте приведённый ниже сценарий в окно модуля.
Код VBA: отправка диапазона ячеек в виде вложения из Excel
Sub SendRange()
'Update 20131209
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = "skyyang@extendoffice.com"
.CC = ""
.BCC = ""
.Subject = "information of kte"
.Body = "hello, please check and read this document. "
.Attachments.Add Wb2.FullName
.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub Советы и настройки:
- .ToTo
- .CCи .BCCможно настроить для копии или скрытой копии по мере необходимости.
- .Subjectи .Bodyпозволяют персонализировать текст письма.
3. Запустите код, нажав F5. Появится запрос на выбор диапазона. Укажите диапазон, который хотите отправить по электронной почте (рекомендуется подтвердить данные перед отправкой). См. пример на скриншоте:

4. После нажатия ОК может появиться индикатор выполнения или уведомление о разрешении. По завершении нажмите Разрешить. Выбранный диапазон ячеек будет отправлен указанному получателю как вложение в виде файла Excel.

Меры предосторожности и устранение неполадок:
- Если Outlook не задан программой электронной почты по умолчанию или не запущен, код может работать некорректно.
- Убедитесь, что параметры безопасности макросов разрешают выполнение сценариев VBA. Возможно, вам потребуется включить макросы или скорректировать настройки Центра управления безопасностью.
- Тип вложения зависит от исходного типа файла и указанной строки в коде VBA.
- После отправки проверьте папку «Отправленные» в Outlook, чтобы убедиться, что письмо успешно доставлено.
Этот подход идеально подходит для безопасного обмена данными, архивирования записей и ситуаций, когда необходимо сохранить исходное форматирование Excel. Однако для открытия вложения получателям потребуется соответствующее программное обеспечение.
Отправка диапазона ячеек в теле письма из Excel с помощью кода VBA
В ситуациях, когда вы хотите, чтобы получатели сразу увидели информацию без загрузки вложений — например, при регулярной отправке сводок отчётов или обновлений хода работ — вы можете встроить выбранный диапазон ячеек непосредственно в тело письма. Это не только повышает доступность, но и делает информацию проще для чтения и быстрее для обработки получателями.
1. Перейдите на лист с вашими данными и нажмите ALT + F11, чтобы открыть окно Microsoft Visual Basic для приложений.
2. Нажмите Вставка > Модуль, чтобы открыть окно модуля, затем вставьте следующий код:
Код VBA: отправка диапазона ячеек в теле письма из Excel
Sub EmailRange()
'Update by Extendoffice
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
WorkRng.Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
.Introduction = "Please read this email."
.Item.To = "skyyang@extendoffice.com"
.Item.Subject = "information of kte"
.Item.Send
End With
Application.ScreenUpdating = True
End Sub Примечания по параметрам и практические корректировки:
- .Introductionпозволяет добавить сообщение перед самим диапазоном.
- .Item.Toследует обновить, указав желаемый Адрес электронной почты.
- .Item.Subjectможно изменить в соответствии с темой вашего отчёта или письма.
3. Запустите макрос с помощью F5. Когда появится запрос, выберите нужный диапазон ячеек для отправки.

4. Подтвердите свой выбор и нажмите ОК. Следите за возможными уведомлениями безопасности. После обработки нажмите Разрешить, чтобы авторизовать макрос. Выбранный диапазон появится непосредственно в теле письма Outlook в виде таблицы.

Важные напоминания:
- Для использования этого решения Outlook должен быть установлен и настроен в качестве программы электронной почты по умолчанию.
- Включите макросы в Excel, чтобы код VBA выполнялся корректно. Если возникнут ошибки, проверьте настройки макросов в Центре управления безопасностью.
- Форматирование сохраняется — однако сложные форматы ячеек могут отображаться в письме иначе, чем в Excel.
- Проверьте папку «Исходящие» или «Отправленные» в Outlook, чтобы убедиться, что письмо успешно отправлено.
Этот подход идеально подходит для обновления статуса команды, оперативного обмена данными или распространения ключевых показателей среди коллег и клиентов, для которых важна мгновенная читаемость.
Другие встроенные методы Excel — используйте встроенную функцию «Отправить получателю электронной почты» для отправки выделенных ячеек в теле письма
В некоторых старых версиях Excel (до Office 365) имелась встроенная кнопка «Отправить получателю электронной почты», позволяющая мгновенно отправлять выделенные ячейки прямо в теле письма — без применения VBA. Хотя в современных версиях Excel эта функция по умолчанию скрыта, её по-прежнему можно активировать через настройку панели быстрого доступа. Такое решение идеально подходит пользователям устаревших версий Excel или тем, кто предпочитает обходиться без макросов.
Как включить и использовать:
- Щёлкните правой кнопкой мыши по панели быстрого доступа (над вашей лентой) и выберите Настроить панель быстрого доступа.
- В списке команд измените значение «Выбрать команды из:» на Все команды.
- Прокрутите список вниз и добавьте Отправить получателю электронной почты на панель быстрого доступа.
- После настройки выделите ячейки, которые хотите отправить, и нажмите значок Отправить получателю электронной почты — Excel автоматически создаст встроенное окно электронной почты с выделенным фрагментом в теле сообщения. Осталось только добавить адреса получателей, указать тему и отправить письмо напрямую!
Важные примечания:
- Для использования этого метода Outlook должен быть настроен как клиент электронной почты по умолчанию.
- Работа со встроенным окном электронной почты может отличаться от привычного составления писем в Outlook — обязательно проверьте форматирование.
- Эта функция может быть недоступна или отключена в некоторых версиях Excel (особенно в новых сборках Office 365). В таких случаях рекомендуем воспользоваться решениями на основе VBA или экспорта в PDF и изображения.
Преимущества и недостатки:
- Очень быстро и просто — в поддерживаемых версиях не требуется писать код или выполнять сложную настройку.
- Недоступна ни в одной из версий; пользователям новых версий Excel могут понадобиться альтернативные методы.
Связанные статьи:
Как отправить только один лист из Excel через Outlook?
Как отправить текущую книгу через Outlook из Excel?
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал 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 и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек