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

Как отправлять электронные письма из электронной таблицы 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.

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

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

Когда вы щелкаете Создавать Кнопка откроет редактор VBA.

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

Прокрутите список вниз, пока не найдете Microsoft CDO для библиотеки Windows 2000 . Поставьте галочку и нажмите Ok .

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

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

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

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

как мне узнать, какие программы удалить на моем компьютере
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 = 'Results from Excel Spreadsheet'
strFrom = 'rdube02@gmail.com'
strTo = 'rdube02@gmail.com'
strCc = ''
strBcc = ''
strBody = 'The total results for this quarter are: ' & Str(Sheet1.Cells(2, 1))

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

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

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

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

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

Set CDO_Mail = CreateObject('CDO.Message')
On Error GoTo Error_Handling
Set CDO_Config = CreateObject('CDO.Configuration')
CDO_Config.Load -1
Set SMTP_Config = CDO_Config.Fields
With SMTP_Config
.Item('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') = 'password'
.Item('http://schemas.microsoft.com/cdo/configuration/smtpserverport') = 25
.Item('http://schemas.microsoft.com/cdo/configuration/smtpusessl') = True
.Update
End With
With CDO_Mail
Set .Configuration = CDO_Config
End With

Шаг 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
Error_Handling:
If Err.Description '' Then MsgBox Err.Description

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

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

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

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

как скрыть лучших друзей в снэпчате

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

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

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

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

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

Далее выберите ThisWorkbook от Проект иерархия.

В двух раскрывающихся полях вверху окна кода выберите Рабочая тетрадь и выберите Открытым из раскрывающегося списка 'Методы'.

Вставьте приведенный выше сценарий электронной почты в Частная вспомогательная книга_Open () .

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

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

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

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

Выбирать Запустить программу и нажмите Следующий .

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

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

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

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

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

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

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

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

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

старые игры скачать для windows 7

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

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

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

Делиться Делиться Твитнуть Эл. адрес Canon против Nikon: какой бренд камеры лучше?

Canon и Nikon - два крупнейших имени в индустрии фотоаппаратов. Но какой бренд предлагает лучшую линейку камер и объективов?

Читать далее
Похожие темы
  • Продуктивность
  • Программирование
  • Подсказки по электронной почте
  • Программирование
  • Программирование на Visual Basic
  • Майкрософт Эксель
  • Советы по Microsoft Office
Об авторе Райан Дьюб(Опубликовано 942 статей)

Райан имеет степень бакалавра электротехники. Он проработал 13 лет в области автоматизации, 5 лет в ИТ, а теперь работает инженером по приложениям. Бывший управляющий редактор MakeUseOf, он выступал на национальных конференциях по визуализации данных и выступал на национальном телевидении и радио.

Ещё от Ryan Dube

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Нажмите здесь, чтобы подписаться