Как отправить лист эксель по электронной почте
Перейти к содержимому

Как отправить лист эксель по электронной почте

  • автор:

Отправка документа из Microsoft Office

Классический клиент Project Online Publisher для Microsoft 365 Excel 2021 Word 2021 PowerPoint 2021 Project профессиональный 2021 Project стандартный 2021 Publisher 2021 Excel 2019 Word 2019 PowerPoint 2019 Project профессиональный 2019 Project стандартный 2019 Publisher 2019 Excel 2016 Word 2016 PowerPoint 2016 Project профессиональный 2016 Project стандартный 2016 Publisher 2016 Excel 2013 Word 2013 PowerPoint 2013 Project профессиональный 2013 Project стандартный 2013 Publisher 2013 Excel 2010 Word 2010 Project 2010 Project стандартный 2010 Publisher 2010 Еще. Меньше

Если в состав установленной на компьютере версии Microsoft Office входит Outlook и он используется по умолчанию для отправки почты, вы можете отправлять документы в виде вложений. Кроме того, файлы Excel, Publisher или Word можно отправлять непосредственно в тексте сообщения.

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

Отправка в виде вложения

Excel, PowerPoint и Word

  1. Выберите файл >поделиться, а затем выберите один из следующих вариантов:

Примечание: Конкретный набор доступных параметров будет варьироваться в зависимости от используемого приложения Office.

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

OneNote, Visio, Publisher и Project

  1. Выберите файл >поделиться, а затем выберите один из следующих вариантов:

Примечание: Конкретный набор доступных параметров будет варьироваться в зависимости от используемого приложения Office.

  • Поделиться с людьми (OneNote и Visio) Позволяет ввести имя или адрес электронной почты для тех, кому вы хотите отправить сообщение, настроить его редактирование, требовать входа пользователя перед редактированием и необязательное сообщение. Этот параметр требует отправки файла в OneDrive.
  • Отправить ссылку (Visio) Позволяет всем работать с одной и той же копией файла, видеть последние изменения и не замерять размер электронной почты. Чтобы отправить ссылку, файл должен быть сохранен на веб-сервере или в общей папке.
  • Отправить как вложение. Откроется окно сообщения электронной почты с вложенной копией файла в исходном формате.
  • Отправить как PDF. Откроется окно сообщения электронной почты с вложенной копией файла в формате PDF.
  • Отправить как XPS. Откроется окно сообщения электронной почты с вложенной копией файла в формате XPS.

Отправка в тексте сообщения электронной почты

В приложениях Excel, Publisher и Word можно отправлять файлы непосредственно в тексте сообщения электронной почты (а не в виде вложения). Для этого необходимо добавить на панель быстрого доступа команду Отправить получателю. Сведения о добавлении команд на панель быстрого доступа см. в статье Настройка панели быстрого доступа.

  1. Откройте файл, который вы хотите отправить.
  2. На панели быстрого доступа нажмите кнопку Отправить получателю, чтобы открыть сообщение электронной почты. Файл будет помещен в текст сообщения.
  3. Укажите псевдонимы получателей, введите тему и текст сообщения (если необходимо) и нажмите кнопку Отправить.

Отправка в виде вложения

Excel, PowerPoint, Project, Publisher, Visio и Word

  1. Выберите Файл >Общий доступ >Электронная почта, а затем — один из указанных ниже параметров.
  2. Отправить как вложение. Откроется окно сообщения электронной почты с вложенной копией файла в исходном формате.
  3. Отправить как PDF. Откроется окно сообщения электронной почты с вложенной копией файла в формате PDF.
  4. Отправить как XPS. Откроется окно сообщения электронной почты с вложенной копией файла в формате XPS.
  5. Отправить как факс через Интернет. Откроется веб-страница со списком поставщиков услуг, которые позволяют отправлять факсы через Интернет.

Примечание: Конкретный набор доступных параметров будет варьироваться в зависимости от используемого приложения Office.

OneNote

  1. Выберите Файл >Отправить, а затем — один из указанных ниже параметров.
    • Отправить как вложение Откроется окно сообщения электронной почты с вложенными копией файла в исходном формате и копией файла в формате веб-страницы.
    • Отправить как PDF. Откроется окно сообщения электронной почты с вложенной копией файла в формате PDF.
  2. Укажите псевдонимы получателей, введите тему и текст сообщения (если необходимо) и нажмите кнопку Отправить.

Отправка в тексте сообщения электронной почты

В приложениях Excel, Publisher и Word можно отправлять файлы непосредственно в тексте сообщения электронной почты (а не в виде вложения). Для этого необходимо добавить на панель быстрого доступа команду Отправить получателю. Сведения о добавлении команд на панель быстрого доступа см. в статье Настройка панели быстрого доступа.

  1. Откройте файл, который вы хотите отправить.
  2. На панели быстрого доступа нажмите кнопку Отправить получателю, чтобы открыть сообщение электронной почты. Файл будет помещен в текст сообщения.
  3. Укажите псевдонимы получателей, введите тему и текст сообщения (если необходимо) и нажмите кнопку Отправить.

Отправка в виде вложения

Приведенные ниже инструкции относятся к приложениям Excel, PowerPoint, Project, Publisher, Visio и Word.

  1. Откройте вкладку Файл.
  2. Нажмите кнопку Сохранить и отправить.
  3. Выберите вариант Отправить по электронной почте, после чего выберите один из следующих параметров:
  4. Отправить как вложение. Откроется окно сообщения электронной почты с вложенной копией файла в исходном формате.
  5. Отправить как PDF. Откроется окно сообщения электронной почты с вложенной копией файла в формате PDF.
  6. Отправить как XPS. Откроется окно сообщения электронной почты с вложенной копией файла в формате XPS.

Примечание: В приложении Project 2010 форматы PDF и XPS недоступны.

Ниже приведены инструкции для приложения OneNote 2010.

  1. Откройте вкладку Файл.
  2. Нажмите кнопку Отправить и выберите один из указанных ниже параметров.
    • Отправить страницу по электронной почте как вложение. Откроется окно сообщения электронной почты с вложенными копией файла в исходном формате и копией файла в формате веб-страницы.
    • Отправить страницу электронной почты в формате PDF. Откроется окно сообщения электронной почты с копией файла в .pdfformat attached.
  3. Укажите псевдонимы получателей, введите тему и текст сообщения (если необходимо) и нажмите кнопку Отправить.

Отправка в тексте сообщения электронной почты

В приложениях Excel, Publisher и Word можно отправлять файлы непосредственно в тексте сообщения электронной почты (а не в виде вложения). Для этого необходимо добавить на панель быстрого доступа команду Отправить получателю. Сведения о добавлении команд на панель быстрого доступа см. в статье Настройка панели быстрого доступа.

Чтобы отправить файл в тексте сообщения электронной почты, выполните указанные ниже действия.

Значок

  1. Откройте файл, который вы хотите отправить.
  2. На панели быстрого доступа нажмите кнопку Отправить сообщение , чтобы открыть сообщение электронной почты. Файл будет помещен в текст сообщения.
  3. Укажите псевдонимы получателей, введите тему и текст сообщения (если необходимо) и нажмите кнопку Отправить.

Отправка информации из таблицы по электронной почте

Дополнительные сведения о планах и их возможностях см. на странице «Расценки».

Отправка информации из таблицы по электронной почте

Есть несколько способов отправить информацию из таблиц и отчётов по электронной почте.

PLANS

  • Smartsheet
  • Pro
  • Business
  • Enterprise

For more information about plan types and included capabilities, see the Smartsheet Plans page.

Доступ к данным можно предоставить разными способами.

  • Если нужно предоставить получателям версию данных только для чтения, отправьте одну или несколько строк по электронной почте.
  • Если нужно, чтобы другой пользователь изменил строки в таблице, даже если у него нет учётной записи Smartsheet, используйте запрос изменения.
  • Если нужно предоставить однократный или регулярный доступ к моментальным снимкам таблицы или отчёта, отправьте таблицу или отчёт по электронной почте в виде вложения в формате PDF или Excel.
  • Если нужно предоставить доступ к таблице соавторам, отправьте безопасную ссылку на неё.

Системный администратор Smartsheet может ограничить возможности совместного доступа для подписчиков плана «Корпоративный» только определёнными адресами электронной почты.

Как отправить одну или несколько строк по электронной почте

Вы можете отправить по электронной почте до 50 строк.

  1. В строках, которые нужно отправить, выберите Меню строки .
    Чтобы отправить несколько строк, нажмите и удерживайте клавишу Shift или Ctrl (Command ⌘ на Mac) при выборе их номеров.
  2. Нажмите Отправить. .
  3. В поле Кому введите адреса электронной почты пользователей или групп, которым нужно отправить сообщение. Адреса следует разделять запятой или точкой с запятой. Чтобы добавить получателей из Списка контактов Smartsheet, нажмите Выбрать контакты .
  4. В полях Тема и Сообщение при необходимости измените тему и содержание письма.
  5. Выберите информацию, которую следует добавить в письмо, и настройте макет письма.
    • Включать: по умолчанию включены все столбцы (в том числе вложения и обсуждения). Выберите Изменить, чтобы добавить или удалить из письма столбцы, вложения или комментарии.
    • Макет: измените способ отображения добавленной информации. Этот параметр доступен только при отправке одной строки.
  6. Чтобы получить копию сообщения, установите флажок Отправить копию мне.
  7. Нажмите Отправить.

Если вы работаете с отчётом, который содержит информацию из нескольких таблиц, в сообщение можно включить строки со значениями только из одной таблицы.

В отчётах, к которым применено группирование, невозможно выбрать заголовки групп вместе со строками таблицы.

Как отправить таблицу в виде вложения

Вы можете отправить моментальный снимок таблицы или отчёта, вложив его в сообщение электронной почты в виде файла в формате PDF или Excel (.xls).

  1. В строке меню выберите Файл >Отправить как вложение.
  2. В поле Кому введите адреса электронной почты пользователей, которым нужно отправить сообщение. Адреса следует разделять запятой или точкой с запятой. Чтобы выбрать получателей сообщения из списка контактов Smartsheet, нажмите Контакты .
  3. При необходимости измените тему и содержание письма. По умолчанию в поле Тема указывается имя таблицы.
  4. Выберите тип вложения, которое нужно отправить.Если вы хотите отправить таблицу в виде файла в формате PDF, выберите (параметры), чтобы открыть меню Настройка PDF и задать вид вложения.
  5. (Необязательно) Чтобы указать время отправки сообщения или настроить регулярную доставку, нажмите Расписание. Затем выберите частоту доставки или укажите время отправки. Нажмите ОК.
  6. Нажмите Отправить.

Периодичность будет отображаться на правой панели формы Отправить как вложение.

Как отправить защищённую ссылку на таблицу

Постоянная ссылка — это постоянный URL-адрес страницы или сайта. Smartsheet генерирует её для каждой таблицы.

Соавторы могут использовать такую ссылку для прямого доступа к таблице в Smartsheet. Для удобства можно добавить постоянную ссылку в закладки. При попытке перейти по постоянной ссылке пользователь, который не является соавтором таблицы, получит сообщение об ошибке.

  1. В правом верхнем углу таблицы выберите пункт Предоставить доступ. Если совместный доступ к элементу не предоставлен, в форме Доступ к таблице отобразится раздел Сведения о приглашении. ​​​​
  2. Чтобы получить доступ к URL-адресу для защищённой ссылки на таблицу, выберите Соавторы. Ссылка отображается под списком соавторов, которым предоставлен доступ.
  3. Чтобы отправить всем соавторам таблицы постоянную ссылку по электронной почте, выберите значок Отправить по электронной почте.

Если вы хотите, чтобы пользователи могли получить доступ к элементу Smartsheet, не выполняя входа, сгенерируйте ссылку, доступную для всех.

Как настроить сообщение о предоставлении доступа

  1. В строке меню выберите Файл >Отправить эл. письмо пользователям, которым предоставлен доступ.
  2. Чтобы сузить список получателей, выберите Все пользователи, которым предоставлен доступ.По умолчанию сообщение будет отправлено всем соавторам таблицы.
  3. Измените тему и текст сообщения. По умолчанию в качестве темы отображается имя таблицы.
  4. Чтобы получить копию сообщения, установите флажок Отправить копию мне.
  5. Нажмите Отправить.

Как отправить письмо из Excel?

Прежде чем начать читать статью прошу принять к сведению объявление: используйте СВОИ АДРЕСА ЭЛ.ПОЧТЫ при тестировании кодов . Не надо отсылать письма на указанные в статье e-mail адреса- это все приходит мне на почту. Помимо этого Вы сами не сможете понять работает или нет, т.к. письма придут мне, а не Вам.
Спасибо за понимание
P.S. А если написанное выше Вы все же проигнорировали и отправили письмо на мои адреса электронной почты — это означает, что Вы соглашаетесь с тем, что вся информация внутри письма, включая вложения, может быть использована мной без ограничений в личных целях.

  • Отправка через меню Excel
  • Простая отправка книги через VBA без Outlook
  • Отправка писем через VBA при помощи Outlook(с вложениями)
  • Отправить письма через Outlook с картинкой в теле письма
  • Массовая рассылка писем по адресам при помощи Outlook
  • Отправка сообщения без использования Outlook — используем CDO

Отправить письмо из Excel можно несколькими способами, в том числе и через написание кода в VBA.

Отправка через меню Excel
Отправку без кода осуществить достаточно просто:

  • Excel 2003 : Файл (File)Отправить (Send To)Сообщение (Mail Recipient)
    и выбрать способ отправки:
    • Сообщение (Mail Recipient) — создается сообщение в программе по умолчанию для отправки электронных писем
    • Сообщение (для ознакомления) (Mail Recipient for Review) — вполне интересный вариант. Перед отправкой для книги включается отслеживание изменений(Сервис (Tools)Исправления (Track changes) ). Можно воспользоваться этим методом, чтобы отправить получателю для внесения им изменений, а после отследить их(СервисИсправленияВыделить исправления (Highlight changes) )
    • Сообщение (как вложение) (Mail Recipient as attachment) — создается сообщение в программе по умолчанию для отправки электронных писем, в которое вложением вкладывается активная книга целиком
    • По маршруту (Routing Recipient) — практически тоже самое, что и Сообщение (для ознакомления) (Mail Recipient for Review) с той разницей, что письмо с вложением пересылается как эстафета от одного получателя к другому. После этого так же можно отследить изменения, внесенные каждым пользователем
    • Папка Exchange (Exchange folder) — активная книга автоматически сохраняется в заданную папку общего сервера Microsoft Exchange. Доступ к этой книге будет открыт всем участникам рабочей группы
    • Факс пользователю службы факсов интернета (Fax) — отправляет содержимое книги по факсу указанным получателям. Для использования данной возможности должна быть установлена служба факсов

    Далее выбирается способ отправки:

    • Как вложение (Send as attachment) — будет автоматически запущена почтовая программа по умолчанию и создано новое письмо, в которое уже будет вложен файл книги, из которой была вызвана команда
    • Как ссылку (Send link) — доступно, только если файл находится на сетевом ресурсе. После нажатия будет создано новое письмо в почтовой программе по умолчанию, в тело которого будет вставлена ссылка на книгу
    • Как PDF (Send as PDF) — файл будет автоматически сохранен в формате PDF, далее будет создано новое письмо в почтовой программе по умолчанию и файл PDF будет вставлен в письмо
    • Как XPS (Send as XPS) — файл будет автоматически сохранен в формате PDF, далее будет создано новое письмо в почтовой программе по умолчанию и файл PDF будет вставлен в письмо
    • Отправить как факс через интернет (Send as internet fax) — если у вас на ПК установлена служба работы с факсами и есть возможность отправлять и получать факсы на ПК — то данная команда отправит данные активного листа файла как факс
    Sub SendMailStandart() ActiveWorkbook.SendMail "mail1@excel-vba.ru", "Тема письма" End Sub

    Sub SendMailStandart() ActiveWorkbook.SendMail «mail1@excel-vba.ru», «Тема письма» End Sub

    Также можно указать несколько получателей:

    Sub SendMailStandart_MassRecipients() ActiveWorkbook.SendMail Array("mail1@excel-vba.ru", "mail2@excel-vba.ru"), "Тема письма" End Sub

    Sub SendMailStandart_MassRecipients() ActiveWorkbook.SendMail Array(«mail1@excel-vba.ru», «mail2@excel-vba.ru»), «Тема письма» End Sub

    Внутри скобок Array можно в кавычках через запятую указать достаточное количество получателей.
    Данный метод универсален, но работает только с активным файлом. Нельзя выбрать файл с диска и отправить как вложение. Кроме того, нельзя отправить более одного файла разом и указать текст письма.
    Поэтому очень часто на форумах возникает вопрос как отправить письмо из Excel кодом с указанием темы, текста и вложения.
    Есть несколько вариантов:

    Отправить письмо через Outlook кодом VBA

    Option Explicit Sub Send_Mail() Dim objOutlookApp As Object, objMail As Object Dim sTo As String, sSubject As String, sBody As String, sAttachment As String Application.ScreenUpdating = False On Error Resume Next 'пробуем подключиться к Outlook, если он уже открыт Set objOutlookApp = GetObject(, "Outlook.Application") Err.Clear 'Outlook закрыт, очищаем ошибку If objOutlookApp Is Nothing Then Set objOutlookApp = CreateObject("Outlook.Application") End If 'раскомментировать строку, если в Outlook несколько учетных записей и нужно подключиться к конкретной(только если Outlook закрыть) ' [параметры]: Session.Logon "имя профиля","пароль",[показывать окно выбора профиля], [запускать в новой сессии] 'objOutlookApp.Session.Logon "profile","1234",False, True Set objMail = objOutlookApp.CreateItem(0) 'создаем новое сообщение 'если не получилось создать приложение или экземпляр сообщения - выходим If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub sTo = "AddressTo@mail.ru" 'Кому(можно заменить значением из ячейки - sTo = Range("A1").Value) sSubject = "Автоотправка" 'Тема письма(можно заменить значением из ячейки - sSubject = Range("A2").Value) sBody = "Привет от Excel-VBA" 'Текст письма(можно заменить значением из ячейки - sBody = Range("A3").Value) sAttachment = "C:\Temp\Книга1.xls" 'Вложение(полный путь к файлу. Можно заменить значением из ячейки - sAttachment = Range("A4").Value) 'создаем сообщение With objMail .To = sTo 'адрес получателя .CC = "" 'адрес для копии .BCC = "" 'адрес для скрытой копии .Subject = sSubject 'тема сообщения .Body = sBody 'текст сообщения '.HTMLBody = sBody 'если необходим форматированные текст сообщения(различные шрифты, цвет шрифта и т.п.) 'добавляем вложение, если файл по указанному пути существует(dir проверяет это) If sAttachment <> "" Then If Dir(sAttachment, 16) <> "" Then .Attachments.Add sAttachment 'просто вложение 'чтобы отправить активную книгу вместо sAttachment указать ActiveWorkbook.FullName End If End If .Send 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра End With Set objOutlookApp = Nothing: Set objMail = Nothing Application.ScreenUpdating = True End Sub

    Option Explicit Sub Send_Mail() Dim objOutlookApp As Object, objMail As Object Dim sTo As String, sSubject As String, sBody As String, sAttachment As String Application.ScreenUpdating = False On Error Resume Next ‘пробуем подключиться к Outlook, если он уже открыт Set objOutlookApp = GetObject(, «Outlook.Application») Err.Clear ‘Outlook закрыт, очищаем ошибку If objOutlookApp Is Nothing Then Set objOutlookApp = CreateObject(«Outlook.Application») End If ‘раскомментировать строку, если в Outlook несколько учетных записей и нужно подключиться к конкретной(только если Outlook закрыть) ‘ [параметры]: Session.Logon «имя профиля»,»пароль»,[показывать окно выбора профиля], [запускать в новой сессии] ‘objOutlookApp.Session.Logon «profile»,»1234″,False, True Set objMail = objOutlookApp.CreateItem(0) ‘создаем новое сообщение ‘если не получилось создать приложение или экземпляр сообщения — выходим If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub sTo = «AddressTo@mail.ru» ‘Кому(можно заменить значением из ячейки — sTo = Range(«A1»).Value) sSubject = «Автоотправка» ‘Тема письма(можно заменить значением из ячейки — sSubject = Range(«A2»).Value) sBody = «Привет от Excel-VBA» ‘Текст письма(можно заменить значением из ячейки — sBody = Range(«A3»).Value) sAttachment = «C:\Temp\Книга1.xls» ‘Вложение(полный путь к файлу. Можно заменить значением из ячейки — sAttachment = Range(«A4»).Value) ‘создаем сообщение With objMail .To = sTo ‘адрес получателя .CC = «» ‘адрес для копии .BCC = «» ‘адрес для скрытой копии .Subject = sSubject ‘тема сообщения .Body = sBody ‘текст сообщения ‘.HTMLBody = sBody ‘если необходим форматированные текст сообщения(различные шрифты, цвет шрифта и т.п.) ‘добавляем вложение, если файл по указанному пути существует(dir проверяет это) If sAttachment <> «» Then If Dir(sAttachment, 16) <> «» Then .Attachments.Add sAttachment ‘просто вложение ‘чтобы отправить активную книгу вместо sAttachment указать ActiveWorkbook.FullName End If End If .Send ‘Display, если необходимо просмотреть сообщение, а не отправлять без просмотра End With Set objOutlookApp = Nothing: Set objMail = Nothing Application.ScreenUpdating = True End Sub

    Этот код отправляет одно письмо и одно вложение за раз. Но если несколько раз вызвать метод .Attachments.Add, то можно добавить еще файлы:

    .Attachments.Add "C:\Temp\Книга1.xlsx" .Attachments.Add "C:\Temp\Книга2.xlsx" .Attachments.Add "C:\Documents\Report.rar"

    .Attachments.Add «C:\Temp\Книга1.xlsx» .Attachments.Add «C:\Temp\Книга2.xlsx» .Attachments.Add «C:\Documents\Report.rar»

    objOutlookApp.Session.Logon "user","1234",False, True

    objOutlookApp.Session.Logon «user»,»1234″,False, True

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

    objOutlookApp.Session.Logon

    Важно помнить: пути для файлов в качестве вложений должны содержать полный путь до файла, включая его имя и расширение: C:\Documents\Report.rar . При указании только имени Report.rar или пути без расширения ( C:\Documents\Report ) ошибки не будет, но вложения не будут помещены в сообщения и адресату отправится письмо без вложений.

    Этот код создает сообщение, но есть маленький нюанс — если в Outlook настроено добавление подписей в новые сообщения — то созданные кодом VBA письма игнорирует эту настройку(особенность Outlook, так назовем). Поэтому, если необходимо отправлять письма с подписью, то ознакомьтесь со статьей: Вставить в письмо подпись из Outlook через VBA
    В этой же статье можно посмотреть пример составления письма с форматированным текстом.

    Отправить письма через Outlook с картинкой в теле письма

    Sub Send_Mail_With_Picture() Dim objOutlookApp As Object, objMail As Object Dim sTo As String, sSubject As String, sBody As String, sAttachment As String, sPicture As String Application.ScreenUpdating = False On Error Resume Next 'пробуем подключиться к Outlook, если он уже открыт Set objOutlookApp = GetObject(, "Outlook.Application") Err.Clear 'Outlook закрыт, очищаем ошибку If objOutlookApp Is Nothing Then Set objOutlookApp = CreateObject("Outlook.Application") End If 'objOutlookApp.Session.Logon "user","1234",False, True Set objMail = objOutlookApp.CreateItem(0) 'создаем новое сообщение 'если не получилось создать приложение или экземпляр сообщения - выходим If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub sTo = "AddressTo@mail.ru" 'Кому(можно заменить значением из ячейки - sTo = Range("A1").Value) sSubject = "Автоотправка" 'Тема письма(можно заменить значением из ячейки - sSubject = Range("A2").Value) sBody = "Привет от Excel-VBA" 'Текст письма(можно заменить значением из ячейки - sBody = Range("A3").Value) sAttachment = "C:\Temp\Книга1.xls" 'Вложение(полный путь к файлу. Можно заменить значением из ячейки - sAttachment = Range("A4").Value) sPicture = "C:\Документы\Изображения\Excel_vba_ru.png" 'если надо вставить в письмо картинку 'создаем сообщение With objMail .To = sTo 'адрес получателя .CC = "" 'адрес для копии .BCC = "" 'адрес для скрытой копии .Subject = sSubject 'тема сообщения ' .Body = sBody 'текст сообщения без форматирования .HTMLBody = sBody 'если необходим форматированные текст сообщения(различные шрифты, цвет шрифта и т.п.) 'чтобы картинка была видна внутри сообщения - надо её сначала добавить как вложение 'если картинка по указанному пути существует(dir проверяет это) If Dir(sPicture, 16) <> "" Then If Dir(sPicture, 16) <> "" Then .Attachments.Add sPicture 'теперь вставляем код картинки .HTMLBody = .HTMLBody & "

    Картинка в письме

    "
    & " & Replace(Dir(sPicture, 16), " ", "%20") & ">" ' & " height=240 width=180>" '" height=240 width=180>" - если нужны размеры картинки End If End If 'добавляем вложение, если файл по указанному пути существует(dir проверяет это) If sAttachment <> "" Then If Dir(sAttachment, 16) <> "" Then .Attachments.Add sAttachment 'просто вложение End If End If .Send 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра End With Set objOutlookApp = Nothing: Set objMail = Nothing Application.ScreenUpdating = True End Sub

    Sub Send_Mail_With_Picture() Dim objOutlookApp As Object, objMail As Object Dim sTo As String, sSubject As String, sBody As String, sAttachment As String, sPicture As String Application.ScreenUpdating = False On Error Resume Next ‘пробуем подключиться к Outlook, если он уже открыт Set objOutlookApp = GetObject(, «Outlook.Application») Err.Clear ‘Outlook закрыт, очищаем ошибку If objOutlookApp Is Nothing Then Set objOutlookApp = CreateObject(«Outlook.Application») End If ‘objOutlookApp.Session.Logon «user»,»1234″,False, True Set objMail = objOutlookApp.CreateItem(0) ‘создаем новое сообщение ‘если не получилось создать приложение или экземпляр сообщения — выходим If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub sTo = «AddressTo@mail.ru» ‘Кому(можно заменить значением из ячейки — sTo = Range(«A1»).Value) sSubject = «Автоотправка» ‘Тема письма(можно заменить значением из ячейки — sSubject = Range(«A2»).Value) sBody = «Привет от Excel-VBA» ‘Текст письма(можно заменить значением из ячейки — sBody = Range(«A3»).Value) sAttachment = «C:\Temp\Книга1.xls» ‘Вложение(полный путь к файлу. Можно заменить значением из ячейки — sAttachment = Range(«A4»).Value) sPicture = «C:\Документы\Изображения\Excel_vba_ru.png» ‘если надо вставить в письмо картинку ‘создаем сообщение With objMail .To = sTo ‘адрес получателя .CC = «» ‘адрес для копии .BCC = «» ‘адрес для скрытой копии .Subject = sSubject ‘тема сообщения ‘ .Body = sBody ‘текст сообщения без форматирования .HTMLBody = sBody ‘если необходим форматированные текст сообщения(различные шрифты, цвет шрифта и т.п.) ‘чтобы картинка была видна внутри сообщения — надо её сначала добавить как вложение ‘если картинка по указанному пути существует(dir проверяет это) If Dir(sPicture, 16) <> «» Then If Dir(sPicture, 16) <> «» Then .Attachments.Add sPicture ‘теперь вставляем код картинки .HTMLBody = .HTMLBody & «

    Картинка в письме

    » & «» ‘ & » height=240 width=180>» ‘» height=240 width=180>» — если нужны размеры картинки End If End If ‘добавляем вложение, если файл по указанному пути существует(dir проверяет это) If sAttachment <> «» Then If Dir(sAttachment, 16) <> «» Then .Attachments.Add sAttachment ‘просто вложение End If End If .Send ‘Display, если необходимо просмотреть сообщение, а не отправлять без просмотра End With Set objOutlookApp = Nothing: Set objMail = Nothing Application.ScreenUpdating = True End Sub

    Этот код отправляет одно письмо и вставляет одну картинку. За это отвечает строка

    " & Replace(Dir(sPicture, 16), " ", "%20") & ">"

    «»

    Если картинку надо вложить с заранее указанными размерами, то строка будет выглядеть так:

    " & Replace(Dir(sPicture, 16), " ", "%20") & " height=240 width=180>" 'height - высота 'width - ширина

    «» ‘height — высота ‘width — ширина

    Если надо добавить несколько картинок, то метод .Attachments.Add sPicture надо будет вызвать столько раз, сколько картинок(для каждого свой путь к картинке).

    Важно помнить: пути для картинок должны содержать полный путь до файла, включая его имя и расширение: C:\Документы\Изображения\Excel_vba_ru.png . При указании только имени Excel_vba_ru.png или пути без расширения ( C:\Документы\Изображения\Excel_vba_ru ) ошибки не будет, но картинка не будет вставлена, а вместо неё скорее всего будет текст «Ошибка загрузки картинки!» или пустой квадрат вместо реальной картинки.

    Таблица адресов

    Массовая рассылка писем по адресам
    Так же можно сделать нечто вроде рассылки, организовав цикл по ячейкам. Предположим, что в столбце А записаны адреса, в столбце В тема, в столбце С текст сообщения, в столбце D путь к вложениям:

    Тогда можно применить следующий код:

    Sub Send_Mail_Mass() Dim objOutlookApp As Object, objMail As Object Dim sTo As String, sSubject As String, sBody As String, sAttachment As String Dim lr As Long, lLastR As Long Application.ScreenUpdating = False On Error Resume Next 'пробуем подключиться к Outlook, если он уже открыт Set objOutlookApp = GetObject(, "Outlook.Application") Err.Clear 'Outlook закрыт, очищаем ошибку If objOutlookApp Is Nothing Then Set objOutlookApp = CreateObject("Outlook.Application") End If 'произошла ошибка создания объекта - выход If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub 'objOutlookApp.Session.Logon "user","1234",False, True lLastR = Cells(Rows.Count, 1).End(xlUp).Row 'цикл от второй строки(начало данных с адресами) до последней ячейки таблицы For lr = 2 To lLastR Set objMail = objOutlookApp.CreateItem(0) 'создаем новое сообщение 'создаем сообщение With objMail .to = Cells(lr, 1).Value 'адрес получателя .Subject = Cells(lr, 2).Value 'тема сообщения .Body = Cells(lr, 3).Value 'текст сообщения 'вложение(если ячейка не пустая и путь к файлу указан правильно) If Cells(lr, 4).Value <> "" Then If Dir(Cells(lr, 4).Value, 16) <> "" Then .Attachments.Add Cells(lr, 4).Value End If End If .Send 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра End With Next lr Set objOutlookApp = Nothing: Set objMail = Nothing Application.ScreenUpdating = True End Sub

    Sub Send_Mail_Mass() Dim objOutlookApp As Object, objMail As Object Dim sTo As String, sSubject As String, sBody As String, sAttachment As String Dim lr As Long, lLastR As Long Application.ScreenUpdating = False On Error Resume Next ‘пробуем подключиться к Outlook, если он уже открыт Set objOutlookApp = GetObject(, «Outlook.Application») Err.Clear ‘Outlook закрыт, очищаем ошибку If objOutlookApp Is Nothing Then Set objOutlookApp = CreateObject(«Outlook.Application») End If ‘произошла ошибка создания объекта — выход If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub ‘objOutlookApp.Session.Logon «user»,»1234″,False, True lLastR = Cells(Rows.Count, 1).End(xlUp).Row ‘цикл от второй строки(начало данных с адресами) до последней ячейки таблицы For lr = 2 To lLastR Set objMail = objOutlookApp.CreateItem(0) ‘создаем новое сообщение ‘создаем сообщение With objMail .to = Cells(lr, 1).Value ‘адрес получателя .Subject = Cells(lr, 2).Value ‘тема сообщения .Body = Cells(lr, 3).Value ‘текст сообщения ‘вложение(если ячейка не пустая и путь к файлу указан правильно) If Cells(lr, 4).Value <> «» Then If Dir(Cells(lr, 4).Value, 16) <> «» Then .Attachments.Add Cells(lr, 4).Value End If End If .Send ‘Display, если необходимо просмотреть сообщение, а не отправлять без просмотра End With Next lr Set objOutlookApp = Nothing: Set objMail = Nothing Application.ScreenUpdating = True End Sub

    Скачать пример массовой рассылки:

    При использовании этих кодов есть один недостаток: очень часто при программной отправке писем Outlook выдает окно с запросом подтверждения отправки. Сообщение может быть трех видов:

    • Программа пытается получить доступ к адресам электронной почты, хранящимся в Outlook. Если вы этого не ожидаете, нажмите кнопку «Запретить» и проверьте наличие последних обновлений для антивирусной программы.
    • Программа пытается отправить сообщение от вашего имени. Если вы этого не ожидаете, нажмите кнопку «Запретить» и проверьте наличие последних обновлений для антивирусной программы.
    • Программа пытается выполнить действие, которое может привести к отправке сообщения от вашего имени. Если вы этого не ожидаете, нажмите кнопку «Запретить» и проверьте наличие последних обновлений для антивирусной программы

    Чтобы при программной отправке данных сообщений не появлялось, в версиях Outlook, начиная с 2007 можно отключить его настройками безопасности:

    • Outlook 2007 : МенюПараметрыЦентр управления безопасностьюПрограммный доступ-установить Никогда не предупреждать о подозрительной активности (не рекомендуется)
    • Outlook 2010 и выше : ФайлПараметрыЦентр управления безопасностьюПрограммный доступ-установить Никогда не предупреждать о подозрительной активности (не рекомендуется)

    ВАЖНО: Если компьютер управляется администратором Microsoft Exchange или Microsoft Windows Active Directory Domain Services и администратором в качестве параметров по умолчанию установлен запрет на внесение изменений в параметры безопасности пользователями, возможность изменения данных настроек безопасности программного доступа будет недоступна.

    Важно: сам код рассылки не имеет никаких ограничений по числу отправляемых сообщений. Но различные почтовые серверы могут устанавливать свои лимиты. Например, Gmail и Yandex могут заблокировать email, с которого ведется рассылка, если общее количество отправленных сообщений превышает 100 штук в день. Поэтому производить важные массовые рассылки рекомендуется с собственного SMTP-сервера.

    Но так же при отправке файлов и писем часто необходимо не привязываться к конкретной почтовой программе. Ведь далеко не все ставят Outlook. Многие используют иные почтовые программы, например TheBat.

    Отправка сообщения без использования Outlook — используем CDO

    Option Explicit Sub Send_Mail() Const CDO_Cnf = "http://schemas.microsoft.com/cdo/configuration/" Dim oCDOCnf As Object, oCDOMsg As Object Dim SMTPserver As String, sUsername As String, sPass As String, sMsg As String Dim sTo As String, sFrom As String, sSubject As String, sBody As String, sAttachment As String On Error Resume Next 'sFrom – как правило совпадает с sUsername SMTPserver = "smtp.yandex.ru" ' SMTPServer: для Mail.ru "smtp.mail.ru"; для Яндекса "smtp.yandex.ru"; для Рамблера "mail.rambler.ru" sUsername = "YourMail@mail.ru" ' Учетная запись на сервере sPass = "1234" ' Пароль к почтовому аккаунту If Len(SMTPserver) = 0 Then MsgBox "Не указан SMTP сервер", vbInformation, "www.Excel-VBA.ru": Exit Sub If Len(sUsername) = 0 Then MsgBox "Не указана учетная запись", vbInformation, "www.Excel-VBA.ru": Exit Sub If Len(sPass) = 0 Then MsgBox "Не указан пароль", vbInformation, "www.Excel-VBA.ru": Exit Sub sTo = "AddressTo@mail.ru" 'Кому sFrom = "YourMail@yandex.ru" 'От кого sSubject = "Автоотправка" 'Тема письма sBody = "Привет от Excel-VBA" 'Текст письма sAttachment = "C:/Temp/Книга1.xls" 'Вложение(полный путь к файлу) 'Назначаем конфигурацию CDO Set oCDOCnf = CreateObject("CDO.Configuration") With oCDOCnf.Fields .Item(CDO_Cnf & "sendusing") = 2 .Item(CDO_Cnf & "smtpauthenticate") = 1 .Item(CDO_Cnf & "smtpserver") = SMTPserver 'если необходимо указать SSL '.Item(CDO_Cnf & "smtpserverport") = 465 'для Яндекса и Gmail 465 '.Item(CDO_Cnf & "smtpusessl") = True '===================================== .Item(CDO_Cnf & "sendusername") = sUsername .Item(CDO_Cnf & "sendpassword") = sPass .Update End With 'Создаем сообщение Set oCDOMsg = CreateObject("CDO.Message") With oCDOMsg Set .Configuration = oCDOCnf .BodyPart.Charset = "koi8-r" .From = sFrom .To = sTo .Subject = sSubject .TextBody = sBody 'Проверка наличия файла по указанному пути If Len(sAttachment) > 0 Then If Dir(sAttachment, 16) <> "" Then .AddAttachment sAttachment End If End If .Send End With Select Case Err.Number Case -2147220973: sMsg = "Нет доступа к Интернет" Case -2147220975: sMsg = "Отказ сервера SMTP" Case 0: sMsg = "Письмо отправлено" Case Else: sMsg = "Ошибка номер: " & Err.Number & vbNewline & "Описание ошибки: " & Err.Description End Select MsgBox sMsg, vbInformation, "www.Excel-VBA.ru" Set oCDOMsg = Nothing: Set oCDOCnf = Nothing End Sub

    Option Explicit Sub Send_Mail() Const CDO_Cnf = «http://schemas.microsoft.com/cdo/configuration/» Dim oCDOCnf As Object, oCDOMsg As Object Dim SMTPserver As String, sUsername As String, sPass As String, sMsg As String Dim sTo As String, sFrom As String, sSubject As String, sBody As String, sAttachment As String On Error Resume Next ‘sFrom – как правило совпадает с sUsername SMTPserver = «smtp.yandex.ru» ‘ SMTPServer: для Mail.ru «smtp.mail.ru»; для Яндекса «smtp.yandex.ru»; для Рамблера «mail.rambler.ru» sUsername = «YourMail@mail.ru» ‘ Учетная запись на сервере sPass = «1234» ‘ Пароль к почтовому аккаунту If Len(SMTPserver) = 0 Then MsgBox «Не указан SMTP сервер», vbInformation, «www.Excel-VBA.ru»: Exit Sub If Len(sUsername) = 0 Then MsgBox «Не указана учетная запись», vbInformation, «www.Excel-VBA.ru»: Exit Sub If Len(sPass) = 0 Then MsgBox «Не указан пароль», vbInformation, «www.Excel-VBA.ru»: Exit Sub sTo = «AddressTo@mail.ru» ‘Кому sFrom = «YourMail@yandex.ru» ‘От кого sSubject = «Автоотправка» ‘Тема письма sBody = «Привет от Excel-VBA» ‘Текст письма sAttachment = «C:/Temp/Книга1.xls» ‘Вложение(полный путь к файлу) ‘Назначаем конфигурацию CDO Set oCDOCnf = CreateObject(«CDO.Configuration») With oCDOCnf.Fields .Item(CDO_Cnf & «sendusing») = 2 .Item(CDO_Cnf & «smtpauthenticate») = 1 .Item(CDO_Cnf & «smtpserver») = SMTPserver ‘если необходимо указать SSL ‘.Item(CDO_Cnf & «smtpserverport») = 465 ‘для Яндекса и Gmail 465 ‘.Item(CDO_Cnf & «smtpusessl») = True ‘===================================== .Item(CDO_Cnf & «sendusername») = sUsername .Item(CDO_Cnf & «sendpassword») = sPass .Update End With ‘Создаем сообщение Set oCDOMsg = CreateObject(«CDO.Message») With oCDOMsg Set .Configuration = oCDOCnf .BodyPart.Charset = «koi8-r» .From = sFrom .To = sTo .Subject = sSubject .TextBody = sBody ‘Проверка наличия файла по указанному пути If Len(sAttachment) > 0 Then If Dir(sAttachment, 16) <> «» Then .AddAttachment sAttachment End If End If .Send End With Select Case Err.Number Case -2147220973: sMsg = «Нет доступа к Интернет» Case -2147220975: sMsg = «Отказ сервера SMTP» Case 0: sMsg = «Письмо отправлено» Case Else: sMsg = «Ошибка номер: » & Err.Number & vbNewline & «Описание ошибки: » & Err.Description End Select MsgBox sMsg, vbInformation, «www.Excel-VBA.ru» Set oCDOMsg = Nothing: Set oCDOCnf = Nothing End Sub

    Данный код отправляет письмо, используя объект CDO (Collaboration Data Objects — присутствует во всех версиях Windows) и от имени Вашей учетной записи(либо Яндекс, либо Мэйл, либо Рамблер либо др.).

    • SMTPserver — Каждый из приведенных выше сервисов имеет свой сервер для отправки сообщений(его можно посмотреть на сайте сервиса). В комментариях к коду я написал три самых распространенных, но если Вы используете какой-то другой, то просто посмотрите на его сайте настройки для Outlook и отыщите тот параметр, который отвечает за SMTPserver .
    • sUsername — это Ваш логин для входа в почтовый сервис. Думаю тут все понятно. Единственный момент — обязательно указывать e-mail именно в полном виде — YourMail@mail.ru , даже если для входа на сервис через браузер Вы используете только первую часть записи(YourMail). Если необходимо подставить в качестве отправителя псевдоним(чтобы получатель видел не просто адрес, а ассоциированное имя учетной записи), то указывать надо именно в формате псевдонима:

    sFrom = "Excel-vba "

    Это основные моменты. Поля Кому(sTo) , От кого(sFrom) , Тема письма(sSubject) , Текст письма(sBody) и Вложение(sAttachment) думаю не нуждаются в расшифровке.
    Так же стоит учесть пару важных моментов: если на почтовом сервере используется шифрование, то необходимо раскомментировать(убрать знак апострофа) эти строки:

    .Item(CDO_Cnf & "smtpserverport") = 465 .Item(CDO_Cnf & "smtpusessl")

    .Item(CDO_Cnf & «smtpserverport») = 465 .Item(CDO_Cnf & «smtpusessl»)

    Иначе вместо отправки письма получим ошибку «Отказ сервера SMTP». Серверы Яндекс и Gmail требуют шифрования, а значит для них указанные выше строки должны быть активированы(т.е. раскомментированы). Номер порта указывается в описании настроек сервера и для каждого сервера может быть своим, поэтому если с указанием приведенного в коде порта( «smtpserverport» ) письмо не отправляется — необходимо зайти в настройки почтового сервера и убедиться в правильности указания номера порта.

    Чтобы использовать данный код вы можете либо просто скопировать его прямо со страницы, либо скачать файл. В файле программа немного упрощена к использованию — в ячейки листа вам необходимо будет внести поля: Кому(sTo), От кого(sFrom),Тема письма(sSubject), Текст письма(sBody) и Вложение(sAttachment) и выбрать SMTPserver. SMTPserver выбирается из выпадающего списка. Сам список является динамическим и расположен на листе «Settinngs«. Там же расположены поля Учетной записи и Пароль, которые автоматически подставляются в необходимые поля на листе «Отправка«. Т.к. список динамический Вы можете просто добавлять к уже имеющимся новые сервисы и потом просто выбирать их из списка. Так же в файле есть еще одна возможность — выбрать файл. Для этого надо просто нажать на кнопку и выбрать файл.

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

    With oCDOMsg Set .Configuration = oCDOCnf .From = sFrom .BodyPart.Charset = "windows-1251" .To = sTo .Subject = sSubject Set objbp = oCDOMsg.AddRelatedBodyPart("C:\Документы\Изображения\11.jpg", "11.jpg", 1) objbp.Fields.Item("urn:schemas:mailheader:Content-ID") = "" objbp.Fields.Update If Len(sAttachment) > 0 Then If Dir(sAttachment, 16) <> "" Then .AddAttachment sAttachment End If End If 'для вложения картинки письмо лучше формировать в формате HTML .HTMLBody = ""11.jpg"">
    "
    & sBody .Send End With

    With oCDOMsg Set .Configuration = oCDOCnf .From = sFrom .BodyPart.Charset = «windows-1251» .To = sTo .Subject = sSubject Set objbp = oCDOMsg.AddRelatedBodyPart(«C:\Документы\Изображения\11.jpg», «11.jpg», 1) objbp.Fields.Item(«urn:schemas:mailheader:Content-ID») = «» objbp.Fields.Update If Len(sAttachment) > 0 Then If Dir(sAttachment, 16) <> «» Then .AddAttachment sAttachment End If End If ‘для вложения картинки письмо лучше формировать в формате HTML .HTMLBody = «
    » & sBody .Send End With

    Самый главный момент:
    AddRelatedBodyPart

      C:\Документы\Изображения\11.jpg — указывается полный путь к файлу картинки на компьютере, включая расширение файла.
      11.jpg — указывается имя картинки с расширением. Это имя будет использовано внутри письма и именно его необходимо будет указать дальше в » urn:schemas:mailheader:Content-ID «. И указывать обязательно в треугольных скобках: » »
      внутри же самого письма в том месте, где должна отображаться картинки надо записать:

    ""11.jpg"">"

    «»

    в приведенном выше коде картинка вставляется в самом начале письма и после неё так же добавляется перенос на новую строку при помощи тэга

    Статья помогла? Поделись ссылкой с друзьями!

    покупка

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

    Отправить отдельный рабочий лист в виде тела из Excel с помощью команды «Отправить получателю почты»

    Excel поддерживает отправку активного листа в качестве основного содержимого по электронной почте с помощью команды «Отправить получателю почты». Вы можете сделать следующее:

    Если вы используете Excel 2007, 2010 или 2013, вам нужно добавить это Отправить получателю почты команду Панель быстрого доступа первый.

    1. Щелкните значок Настройка панели быстрого доступа, и выберите Дополнительные команды, см. снимок экрана:

    документ-электронная почта-лист1

    2. И в Параметры Excel диалоговое окно, выберите Команды не на ленте в Выберите команды из раскрывающийся список, затем выберите Отправить получателю почты и нажмите Добавить >> кнопку, чтобы добавить эту команду, наконец нажмите OK чтобы сохранить эту настройку. Смотрите скриншот:

    документ-электронная почта-лист2

    3. Это Отправить получателю почты команда была вставлена ​​в Панель быстрого доступа, см. снимок экрана:

    документ-электронная почта-лист3

    4. Затем щелкните это Отправить получателю почты значок кнопки, и всплывающее окно подсказки в Электронная почта окно подсказки, отметьте Отправить текущий лист как тело сообщенияи нажмите OK. Смотрите скриншот:

    документ-электронная почта-лист4

    5. И поле редактирования электронной почты отображается над данными рабочего листа, вы можете ввести получателей, тему и введение в соответствующее текстовое поле. Смотрите скриншот:

    документ-электронная почта-лист5

    6. Затем нажмите Отправить это Sheet, чтобы отправить этот активный рабочий лист как тело сообщения вашему конкретному человеку.

    Отправить отдельный рабочий лист как вложение из Excel с кодом VBA

    Если вы хотите отправить активный лист по электронной почте в качестве вложения, следующий код VBA может вам помочь.

    1. Активируйте свой лист, который вы хотите отправить.

    2. Удерживайте ALT + F11 ключи, и он открывает Окно Microsoft Visual Basic для приложений.

    3. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.

    Код VBA: отправить текущий лист как вложение из Excel

    Sub SendWorkSheet() 'Update 20131209 Dim xFile As String Dim xFormat As Long Dim Wb As Workbook Dim Wb2 As Workbook Dim FilePath As String Dim FileName As String Dim OutlookApp As Object Dim OutlookMail As Object On Error Resume Next Application.ScreenUpdating = False Set Wb = Application.ActiveWorkbook ActiveSheet.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 cloaked_email ep_7db58a85"> " .CC = "" .BCC = "" .Subject = "kte features" .Body = "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 Application.ScreenUpdating = True End Sub 

    Внимание: В приведенном выше коде вы можете изменить следующую информацию по своему усмотрению.

    • .К cloaked_email ep_d9c6ab3c»> «
    • .CC = «»
    • .BCC = «»
    • .Subject = «особенности kte»
    • .Body = «Пожалуйста, проверьте и прочтите этот документ.»

    4. Затем нажмите F5 нажмите клавишу, чтобы запустить этот код, и появится диалоговое окно, нажмите Разрешить когда индикатор выполнения закончится, а затем текущий рабочий лист будет отправлен получателю в качестве вложения.

    документ-электронная почта-лист6

    Отправить отдельный рабочий лист в виде файла PDF из Excel с кодом VBA

    Иногда вам нужно отправить отчет на листе другим, но вы не хотите, чтобы другие его изменяли. В этом случае вы можете отправить лист в виде файла PDF из Excel.

    1. Активируйте свой лист, который вы хотите отправить.

    2. Удерживайте ALT + F11 ключи, и он открывает Окно Microsoft Visual Basic для приложений.

    3. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.

    Код VBA: отправить текущий рабочий лист как файл PDF из Excel

    Sub SendWorkSheetToPDF() 'Update 20131209 Dim Wb As Workbook Dim FileName As String Dim OutlookApp As Object Dim OutlookMail As Object On Error Resume Next Set Wb = Application.ActiveWorkbook FileName = Wb.FullName xIndex = VBA.InStrRev(FileName, ".") If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1) FileName = FileName & "_" + ActiveSheet.Name & ".pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName Set OutlookApp = CreateObject("Outlook.Application") Set OutlookMail = OutlookApp.CreateItem(0) With OutlookMail .To cloaked_email ep_4d5d6a4f"> " .CC = "" .BCC = "" .Subject = "kte features" .Body = "Please check and read this document." .Attachments.Add FileName .Send End With Kill FileName Set OutlookMail = Nothing Set OutlookApp = Nothing End Sub 

    Примечание. В приведенном выше коде вы можете изменить следующую информацию по своему усмотрению.

    • .К cloaked_email ep_b79b37e8″> «
    • .CC = «»
    • .BCC = «»
    • .Subject = «особенности kte»
    • .Body = «Пожалуйста, проверьте и прочтите этот документ.»

    4, Затем нажмите F5 , и появится окно с подсказкой, нажмите Разрешить после завершения индикатора выполнения активный рабочий лист был отправлен конкретному человеку в виде файла PDF.

    документ-электронная почта-лист6

    Ноты:

    1. Эти методы доступны только при использовании Outlook в качестве почтовой программы.

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

    Создайте список рассылки, затем отправьте электронные письма

    Статьи по теме:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *