Как отправлять электронные письма из электронной таблицы Excel с помощью скриптов VBA

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

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

Предпочитаете смотреть это руководство в виде видео? Мы вам поможем!

Зачем отправлять электронную почту от Excel?

Существует множество причин, по которым вы можете захотеть отправить электронное письмо из Microsoft Excel.

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

Вы, вероятно, думаете, что создание сценария рассылки электронной почты из Excel будет сложной задачей. Это совсем не так.

В методе этой статьи будет использоваться функция, которая уже давно доступна в Excel VBA, Объекты данных совместной работы (CDO).

CDO — это компонент обмена сообщениями, используемый в Windows с самого начала поколения ОС. Раньше он назывался CDONTS, а затем, с появлением Windows 2000 и XP, был заменен на «CDO for Windows 2000». Этот компонент уже включен в вашу установку VBA в Microsoft Word или Excel и готов к использованию.

Использование компонента делает отправку электронных писем из продуктов Windows с помощью VBA чрезвычайно простой. В этом примере вы будете использовать компонент CDO в Excel для отправки электронного письма, которое доставит результаты из определенной ячейки Excel.

Шаг 1. Создайте макрос VBA

Первый шаг — перейти на вкладку Excel Developer.

На вкладке «Разработчик» нажмите Вставить в поле «Элементы управления», а затем выберите командную кнопку.

Нарисуйте его на листе, а затем создайте для него новый макрос, нажав Macros на ленте разработчика.

Когда вы нажимаете кнопку Создать , появляется Я открою редактор VBA.

Добавьте ссылку на библиотеку CDO, перейдя в Инструменты > Ссылки в редакторе.

Прокрутите список вниз, пока не найдете Microsoft CDO для библиотеки Windows 2000 . Установите флажок и нажмите OK .

Когда вы нажмете OK , запишите имя функции, в которую вы вставляете скрипт. понадобится позже.

Шаг 2: Настройте CDO «От» и поля «Кому»

T Для этого вам сначала нужно создать почтовые объекты и настроить все поля, необходимые для отправки электронного письма.

Имейте в виду, что, хотя многие поля являются необязательными, поля From и To обязательны.

  Dim CDO_Mail As Object 
Dim CDO_Config As Object
Dim SMTP_Config As Variant
Dim strSubject As String
Dim strFrom As String
Dim strTo As String
Dim strCc As String
Dim strBcc As String
Dim strBody As String
strSubject = "Результаты из Таблица Excel "
strFrom =" rdube02@gmail.com "
strTo =" rdube02@gmail.com "
strCc =" "
strBcc =" "
strBody = "Общие результаты за этот квартал:" & Str (Sheet1.Cells (2, 1))

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

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

Шаг 3. Настройте CDO для использования внешнего SMTP

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

В этом примере показана настройка без SSL через Gmail. CDO поддерживает SSL, но это выходит за рамки данной статьи. Если вам нужно использовать SSL, этот расширенный код в Github может помочь.

  Установить CDO_Mail = CreateObject ("CDO.Message") 
При ошибке Перейти к Error_Handling
Установить CDO_Config = CreateObject ("CDO.Configuration")
CDO_Config.Load -1
Установить SMTP_Config = CDO_Config.Fields
с помощью SMTP_Config
. Элемент ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = " smtp.gmail.com "
.Item (" http://schemas.microsoft.com/cdo/configuration/smtpauthenticate ") = 1
.Item (" http://schemas.microsoft .com/cdo/configuration/sendusername ") =" email@website.com "
.Item (" http://schemas.microsoft.com/cdo/configuration/sendpassword ") =" пароль "
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl ") = True
. Обновить
Завершить с помощью
с помощью CDO_Mail
Установить .Configuration = CDO_Config
Завершить с помощью

Шаг 4: Завершите настройку CDO

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

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

  CDO_Mail.Subject = strSubject 
CDO_Mail.From = strFrom
CDO_Mail.To = strTo
CDO_Mail.TextBody = strBody
CDO_Mail.CC = strCc
CDO_Mail.BCC = strBcc
CDO_Mail.Send
Обработка ошибок:
Если Err.Description "" Then MsgBox Err.Description

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

CDO просто собирает электронное письмо и использует данные вашего соединения с SMTP-сервером для отправки сообщения. Это самый простой способ включить электронную почту в сценарии Microsoft Word или Excel VBA.

Чтобы подключить вашу командную кнопку к этому скрипту, войдите в редактор кода и нажмите Sheet1 , чтобы просмотреть код VBA для этого листа.

Введите имя функции, в которую вы вставили скрипт выше.

Вот как выглядело сообщение, которое я получил в своем входящие:

Примечание : Если вы получаете сообщение об ошибке Транспортному транспорту не удалось подключиться к серверу , убедитесь, что вы ввели правильное имя пользователя, пароль, SMTP-сервер и номер порта в строках кода. перечислено под с SMTP_Config .

Двигайтесь дальше и автоматизируйте весь процесс

Это нормально — иметь возможность отправлять электронную почту из Excel одним нажатием кнопки.. Однако вы можете использовать эту функцию на регулярной основе, и в этом случае имеет смысл автоматизировать процесс.

Для этого вам нужно внести изменения в макрос. Перейдите в редактор Visual Basic, скопируйте и вставьте весь собранный код.

Затем выберите ThisWorkbook из проекта сильная> иерархия.

В двух раскрывающихся полях вверху окна кода выберите Workbook и выберите Open в раскрывающемся списке «Методы».

Вставьте приведенный выше сценарий электронной почты в Private Sub Workbook_Open () .

Это будет запускать макрос всякий раз, когда вы открываете файл Excel.

Затем откройте Планировщик задач. .

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

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

Выберите Запустить программу и нажмите Далее .

Используйте Обзор , чтобы найти расположение Microsoft Excel на вашем компьютере, или скопируйте и вставьте путь в поле Программа/сценарий .

Затем введите путь к вашему документу Microsoft Excel в поле Добавить аргументы .

Завершите работу мастера, и ваше расписание будет на месте.

Стоит запустить тест, запланировав действие на пару минут в будущем, а затем изменив задачу, как только вы убедитесь, что она работает.

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

Для этого откройте электронную таблицу и перейдите в Файл > Параметры > Центр управления безопасностью .

Отсюда нажмите Настройки центра управления безопасностью и на следующем экране установите переключатель в положение Никогда не показывать информацию о заблокированном содержимом .

Заставьте Microsoft Excel работать на вас

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

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

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

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

Оцените статью
oilgasindustry.ru
Добавить комментарий