Vba Outlook создает электронную почту

Обновлено: 06.07.2024

Спасибо за очень полезную помощь в написании кода для Outlook. Мне интересно, можете ли вы поделиться кодом, который поможет автоматизировать отправку электронной почты в Outlook? Я знаю, что есть несколько способов отправки повторяющегося сообщения, но меня особенно интересует использование VBA для этой задачи.

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

Написание VBA для отправки электронной почты Outlook

В приведенном ниже довольно простом примере мы рассмотрим следующие шаги:

  1. Во-первых, мы будем использовать объектную модель VBA Outlook для создания нового элемента электронной почты.
  2. Затем мы продолжим и установим важность сообщения, получателей (разделенных точкой с запятой), а также стиль и содержание основного текста.
  3. Затем мы отобразим сообщение в вашем приложении Microsoft Outlook.
  4. Наконец, мы отправим его получателям.

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

Ярлык макроса Outlook VBA

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

Вот как это сделать:

  1. Сначала откройте Microsoft Outlook.
  2. Нажмите «Файл», затем выберите «Параметры».
  3. Теперь выберите "Настроить ленту".
  4. В разделе "Настройка ленты" вы увидите поле со списком "Выбрать команды из".
  5. Выберите макросы.
  6. Затем выберите только что созданный код VBA, в нашем случае имя должно быть SendMail.
  7. Затем нажмите "Добавить", а затем "ОК". При желании вы можете назначить значок для своего макроса.
  8. Ваш макрос будет доступен на панели быстрого доступа в верхней левой части приложения Outlook.

Возможные проблемы с настройками макросов VBA

Возможно, вам потребуется настроить параметры макросов Outlook для запуска макросов. Если да, вот как это сделать.

Чаще всего, чтобы использовать шаблон электронной почты Outlook, вы должны сначала найти его, нажав «Новые элементы» > «Дополнительные элементы» > «Выбрать форму». Затем в диалоговом окне «Выбор формы» найдите и откройте целевые шаблоны в «Шаблоны пользователя в файловой системе», как показано на следующем снимке экрана.

Выберите форму

Очевидно, что это действительно очень хлопотно. Поэтому здесь мы представим 2 быстрых средства, которые могут быстро создавать новую электронную почту с использованием шаблонов с помощью Outlook VBA. Читайте дальше, чтобы узнать о них подробнее.

Способ 1. Создание нового шаблона электронной почты непосредственно в Outlook VBA

  1. Сначала перейдите на вкладку "Разработчик" в главном окне Outlook.
  2. Затем нажмите кнопку «Visual Basic», откроется новое окно.
  3. Далее скопируйте и вставьте следующие коды VBA в модуль.

Создайте новый шаблон электронной почты непосредственно в Outlook VBA

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

  1. Во-первых, у вас должен быть готовый шаблон электронного письма. Создайте новое электронное письмо в желаемом формате, канцелярские принадлежности и сохраните его как шаблон Outlook. Подробные инструкции см. в статье «Как повысить эффективность работы с помощью шаблонов Outlook». Кроме того, запишите путь к папке для сохранения этого файла шаблона.
  2. Затем откройте окно «Visual Basic» и откройте новый модуль, как в совете 1.
  3. После этого скопируйте и вставьте следующий снимок экрана:

Создать новое электронное письмо из существующего шаблона с помощью Outlook VBA

Сравнение двух методов

Методы Преимущества Недостатки
Метод 1 Вы можете создать шаблон электронной почты непосредственно с помощью кодов VBA. Вы не можете форматировать тексты в сообщении.
Способ 2 Вы можете применить нужные бланки и формат тексты для электронного письма. Вы должны заранее создать новый шаблон электронного письма.

Устранение случайных ошибок Outlook

Несмотря на то, что Outlook многофункционален, он по-прежнему подвержен различным проблемам. Причем самое досадное, что пользователи не могут запустить Outlook. В общем, это может произойти из-за поврежденного Outlook. Таким образом, вы можете перейти в «Панель управления», чтобы восстановить офисный пакет. Если проблема не устранена, вам придется прибегнуть к опытному инструменту восстановления, такому как DataNumen Outlook Repair.

Мы часто используем приложение Microsoft Office Outlook для управления электронной почтой, контактами и т. д. из дома и офиса. Возможно, это один из самых безопасных и надежных способов управления конфиденциальной электронной почтой. Однако у него есть и много других полезных функций. В этой статье я покажу вам, как отправлять электронные письма из файла Excel с помощью макроса VBA и Office Outlook.

Отправить письмо из Excel с помощью VBA и Outlook

С помощью VBA вы можете писать небольшие программы, которые преобразуют рабочие листы Excel в очень динамичное приложение. Я покажу вам, как автоматизировать Office Outlook с помощью VBA.

Автоматизация – это процесс, при котором приложение получает доступ к методам и свойствам другого приложения.

Анализ электронной почты Outlook с помощью VBA

👉 Вот пример, как анализировать электронные письма Outlook и отображать их на листе Excel с помощью VBA

Чтобы получить доступ к методам и свойствам Outlook, нам нужно создать экземпляр Outlook. Чтобы инициализировать приложение Outlook, мы будем использовать функцию CreateObject() для создания объекта приложения.

Затемнить objOutlook как объект
Установить objOutlook = CreateObject("Outlook.Application")

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

Добавить элемент управления "Кнопка"

Прежде чем мы начнем писать наш код VBA, мы сначала добавим кнопку Command (элемент управления ActiveX) на лист Excel. Событие нажатия кнопки запускает процедуру отправки почты. Вы можете получить доступ к элементам управления ActiveX на вкладке "Разработчик".

Найти и выделить дубликаты в Excel

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

Вы можете найти вкладку "Разработчик" в верхней части листа Excel, обычно рядом с вкладкой "Вид". Если вкладка "Разработчик" недоступна, ее необходимо добавить на верхние вкладки вручную.

Перейдите на вкладку "Разработчик", в группе "Элементы управления" найдите "Вставка" и щелкните ее. Он покажет вам список элементов управления формы и элементов управления ActiveX, нажмите кнопку Command под элементами управления ActiveX и добавьте его на лист Excel (например, на лист1).

Теперь вы можете разместить командную кнопку в любом месте листа. Внутри группы «Элементы управления» найдите «Режим дизайна» (рядом с «Вставить») и щелкните его. Это позволит вам редактировать элемент управления кнопки на самом листе. Щелкните правой кнопкой мыши кнопку, найдите вкладку CommandButton Object и выберите Edit . Измените название кнопки на «Отправить письмо» .

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

Отображать сообщение с помощью свойства .Display

Теперь мы напишем макрос (программу) для отправки электронных писем из нашей книги Excel.

Дважды щелкните командную кнопку (которую мы добавили на лист, см. выше), и вы увидите процедуру CommandButton1_Click(), куда вы добавите код.

В верхнем меню найдите «Инструменты» и выберите «Ссылки…». В диалоговом окне «Ссылки» найдите библиотеку объектов Microsoft Outlook 12.0 (или любую более позднюю версию, например 16.0 и т. д.), установите флажок и нажмите «ОК» .

Я создал два объекта (objOutlook и objEmail) в приведенном выше макросе.

01) Объект objOutlook: Используя функцию CreateObject(), я инициализировал Outlook. Теперь я могу получить доступ к свойствам электронной почты с помощью метода CreateItem().

02) Объект objEmail: Используя этот объект, я создам элемент Outlook. Это даст доступ к таким свойствам, как to, body и subject и т. д.

Мы по-прежнему не отправляем электронное письмо. Что именно будет делать этот код?

Внимательно посмотрите на код, вы увидите свойство .Display. Это покажет сообщение в приложении Outlook со всеми необходимыми параметрами. Вы можете увидеть адрес Кому с Темой и Телом. Нажмите кнопку «Отправить», чтобы отправить сообщение по электронной почте на указанный адрес.

Макрос для автоматической отправки писем из Excel

👉 Знаете ли вы, что в особых случаях вы можете автоматически отправлять электронные письма из Excel с помощью простого макроса? Проверь это.

Это хороший способ проверить свойства и их содержимое, которые мы назначили в нашем коде VBA, перед отправкой по почте. Убедившись в нашем коде, мы добавим свойство .send для отправки сообщения по электронной почте одним нажатием кнопки.

Отправить сообщение, используя свойство .Send

Все, что вам нужно сделать, это изменить свойство .Display на свойство .Send.

Добавить вложения, копию и скрытую копию в Excel

Аналогичным образом вы можете протестировать другие важные свойства, такие как CC, BCC, вложения и т. д.

Отправлять электронные письма нескольким Получатели из Excel с использованием VBA

👉 Вот еще один пример, уверен, вам понравится. Как отправлять электронные письма нескольким получателям из вашей книги Excel с помощью VBA и Outlook.

Теперь вы знаете, как отправлять электронные письма из файла Excel с помощью VBA и Outlook. Здесь мы также узнали, как добавлять вложения, слепую копию или BCC и т. Д., Используя VBA. Это очень просто. Попробуйте поработать и с другими свойствами.

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

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

Для этого кода вам потребуется включенная библиотека объектов Microsoft Outlook 16.0. В визуальном базовом редакторе перейдите в «Инструменты», затем «Ссылки», установите флажок рядом с ним и нажмите кнопку «ОК», чтобы включить его.


В этом примере я буду импортировать данные из папки Outlook с именем Inbox/Net Sales Report/Sales. Если вы хотите импортировать из подпапки Sales, вам нужно будет добавить еще один .Folders («Имя подпапки») в строку кода Set Folder =.

Я добавил именованные диапазоны в книгу, ссылаясь на ячейку с именованным диапазоном в VBA, а не на общий адрес ячейки, такой как Range("A1"), что означает, что вы можете перемещать элементы в своей книге, не беспокоясь о нарушении код. Это именованные диапазоны, которые будет использовать код.

  • From_date: эта ячейка позволит пользователю ввести дату отправителя, чтобы возвращались только электронные письма, полученные (и находящиеся в нашей папке «Продажи») после этой даты.
  • eMail_subject — эта ячейка содержит заголовок столбца Subject. Темы из электронных писем будут импортированы чуть ниже этой ячейки.
  • eMail_date — эта ячейка содержит заголовок столбца Дата. Дата, полученная из электронных писем, будет импортирована сразу под этой ячейкой.
  • eMail_sender — эта ячейка содержит заголовок столбца Sender. Информация об отправителе из электронных писем будет импортирована чуть ниже этой ячейки.
  • eMail_text — эта ячейка содержит заголовок столбца Текст электронной почты. Основной текст из электронных писем будет импортирован сразу под этой ячейкой.

Вот код.


Это довольно простая процедура VBA, но она может быть очень полезна, если вам приходится иметь дело с большим количеством похожих электронных писем.

Читайте также: