Найти в Дзене
Роман Алексеевич

Отправить электронную почту в excel используя макрос

Каждый в процессе своей трудовой деятельности рано или поздно сталкивается с необходимостью отправлять однотипные сообщения определенному кругу лиц. Например, в процессе моей трудовой деятельности передо мной стояла задача отправлять, так сказать, письма-напоминалки единственной целью которых было напомнить определенным контактам из моей записной книжки что настало время передавать мне показания по приборам учета. И звучало оно примерно так: «Добрый день Наталья Ивановна! Прошу предоставить показания за газ за апрель 2020 года». Само сообщение так сказать не трудно было составить, трудно было вспомнить что именно в этот день нужно было отправить сообщение (эту проблему мы уже решили в статье «как организовать работу чтобы все успевать»), на какой адрес электронной почты отправлять и как вообще обращаться к человеку. Я тратил уйму времени чтобы раздобыть необходимую информацию. И ладно бы если раз или два, так нет, это повторялось из месяца в месяц и в итоге мне в голову пришла мысль: «

Каждый в процессе своей трудовой деятельности рано или поздно сталкивается с необходимостью отправлять однотипные сообщения определенному кругу лиц. Например, в процессе моей трудовой деятельности передо мной стояла задача отправлять, так сказать, письма-напоминалки единственной целью которых было напомнить определенным контактам из моей записной книжки что настало время передавать мне показания по приборам учета. И звучало оно примерно так: «Добрый день Наталья Ивановна! Прошу предоставить показания за газ за апрель 2020 года». Само сообщение так сказать не трудно было составить, трудно было вспомнить что именно в этот день нужно было отправить сообщение (эту проблему мы уже решили в статье «как организовать работу чтобы все успевать»), на какой адрес электронной почты отправлять и как вообще обращаться к человеку. Я тратил уйму времени чтобы раздобыть необходимую информацию. И ладно бы если раз или два, так нет, это повторялось из месяца в месяц и в итоге мне в голову пришла мысль: «А почему бы мне не сделать так чтобы по нажатию кнопки «отправить сообщение» у меня автоматически создавалось новое сообщение с уже набранным обращением в Outlook и указывались контакты которым данное сообщение адресовано.

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

Теперь давайте подробно разберем как отправить электронную почту через excel. Для решения данной задачи я использовал встроенный в Microsoft Office язык программирования Visual Basic for Applicatin, сокращенно vba. Для тех, кто понятия не имеет о том, что это такое, а также всех, кто испытывает страх перед словом «язык программирования» - прошу ознакомиться со статьей «Самоучитель по макросам в Excel. Азы VBA», поверьте, в нем нет ничего сложного, а пользу принесет вам колоссальную.

В первую очередь отправка почты через vba excel должна быть универсальной. Ведь не очень-то охота писать кучу строк кода каждый раз, когда понадобиться отправить сообщение уже другому человеку и с другим содержанием. Для этого создадим функцию CreateNewMail с тремя текстовыми параметрами типа String, а именно email (адрес электронной почты), tema (тема сообщения) и put_file (путь к файлу, который необходимо прикрепить к сообщению). Получится картина следующего вида:

Далее в тело самой функции поместим код создания нового объекта Outlook, присвоив его переменной Mail.

-2

После создадим новое сообщение, указав электронную почту, тему, текст сообщения и прикрепив файл (при необходимости). При этом сделаем проверку на необходимость прикрепления файла.

-3

В итоге у нас получится функция следующего вида:

-4

Чтобы необходимое нам сообщение создалось, достаточно в любом месте вызвать функцию с указанием параметров. Например:

-5

В результате мы получим сообщение седлающего вида. И единственное что нам остается сделать – это нажать кнопку «Отправить».

Сообщение, созданное макросом excel
Сообщение, созданное макросом excel

Немного доработав код vba, можно реализовать макрос автоматической отправки сообщений.

Полная версия статьи с оригинальным кодом доступна тут.