Макрос Excel для автоматической отправки электронной почты (3 подходящих примера)

  • Поделись Этим
Hugh West

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

Скачать Практическое пособие

Рабочую тетрадь для практических занятий можно скачать отсюда.

Автоматическая отправка электронной почты.xlsm

3 подходящих примера макроса Excel для автоматической отправки электронной почты

В этой статье мы продемонстрируем 3 подходящие примеры использования макроса excel для автоматической отправки электронного письма адресатам. Прежде чем приступить к иллюстрации примера, нам нужно кое-что исправить в нашем листе excel. Выполните следующие шаги, прежде чем применять макрос для автоматической отправки электронного письма.

ШАГИ:

  • Во-первых, из вашего набора данных перейдите в раздел вкладка Разработчик Выберите опцию Visual Basic .

  • Далее перейдите к Инструмент вкладку и выберите опцию Ссылки .

  • Появится новое диалоговое окно с именем ' Ссылки - VBAProject ' откроется.
  • Наконец, проверьте опцию ' Библиотека объектов Microsoft Office 16.0 ' и нажмите на OK .

1. применение макроса Excel VBA для автоматической отправки электронной почты на основе значения ячейки

Прежде всего, мы применим метод excel VBA макрос для автоматической отправки электронного письма на основе определенного значения ячейки в нашем наборе данных. Для иллюстрации этого примера мы будем использовать следующий набор данных. Мы напишем код, который автоматически отправит электронное письмо, если значение ячейки в ячейке D6 больше, чем 400 .

Рассмотрим шаги для выполнения этого действия.

ШАГИ:

  • Для начала, правильно - нажмите на листе ' На основе клетки '.
  • Кроме того, выберите опцию ' Посмотреть код '.

  • Вышеуказанное действие откроет пустой VBA окно кода для этого рабочего листа. Другой способ открыть окно кода - нажать кнопку Альт + F11 .
  • Далее, введите следующий код в это окно кода:
 Dim rg As Range Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Cells.Count> 1 Then Exit Sub Set rg = Intersect(Range("D6"), Target) If rg Is Nothing Then Exit Sub If IsNumeric(Target.Value) And Target.Value> 400 Then Call send_mail_outlook End If End Sub Sub send_mail_outlook() Dim z As Object Dim y As Object Dim b As String Set z = *.CreateObject("Outlook.Application") Set y = z.CreateItem(0) b = "Hello!" & vbNewLine & vbNewLine & _ "Hope you are well" & vbNewLine & _ "Visit our site Exceldemy" On Error Resume Next With y .To = "Address" .cc = "" .BCC = "" .Subject = "send mail based on cell value" .Body = b .Display End With On Error GoTo 0 Set y = Nothing Set z = Nothing End Sub 
  • Затем нажмите кнопку Запускайте или нажмите кнопку F5 чтобы запустить код.

  • Появится новое диалоговое окно с именем Макросы появится.
  • После этого в Имя макроса поле выберите макрос ' send_mail_outlook '.
  • Теперь нажмите на Запускайте кнопка.

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

Читать далее: Автоматическая отправка электронных писем из Excel на основе содержимого ячеек (2 метода)

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

Во втором методе мы будем использовать Excel VBA Макрос для автоматической отправки письма, если срок выполнения какого-либо проекта близок. Это что-то вроде напоминания. Для иллюстрации этого примера мы используем следующий набор данных. Набор данных содержит электронные письма различных продавцов, сообщения и срок выполнения их проекта.

Для выполнения этого метода выполните следующие действия.

ШАГИ:

  • Сначала щелкните правой кнопкой мыши на листе Дата .
  • Далее выберите опцию ' Посмотреть код '.

  • Откроется пустой VBA окно кода для активного рабочего листа. Мы также можем нажать кнопку Альт + F11 чтобы получить это кодовое окно.
  • Затем вставьте следующий код в это окно кода:
 Public Sub Based_on_Date() Dim aRgDate As Range Dim aRgSend As Range Dim aRgText As Range Dim aRgDone As Range Dim aOutApp As Object Dim aMailItem As Object Dim aLastRow As Long Dim CrLf As String Dim aMailBody As String Dim zRgDateVal As String Dim zRgSendVal As String Dim aMailSubject As String Dim j As Long On Error Resume Next Set aRgDate = Application.InputBox("select the column of duedate:", _ "Send Mail Base on Date", , , , , , 8) If aRgDate Is Nothing Then Exit Sub Set aRgSend = Application.InputBox("выберите колонку получателей письма:", _ "Send Mail Base on Date", , , , , , 8) If aRgSend Is Nothing Then Exit Sub Set aRgText = Application.InputBox("выберите колонку содержимого письма:", _ "Send Mail Base on Date", , , , , , 8) If aRgText Is Nothing Then Exit Sub aLastRow =aRgDate.Rows.Count Set aRgDate = aRgDate(1) Set aRgSend = aRgSend(1) Set aRgText = aRgText(1) Set aOutApp = CreateObject("Outlook.Application") For j = 1 To aLastRow zRgDateVal = "" zRgDateVal = aRgDate.Offset(j - 1).Value If zRgDateVal "" Then If CDate(zRgDateVal) - Date 0 Then zRgSendVal = aRgSend.Offset(j - 1).Value aMailSubject = aRgText.Offset(j - 1).Value & " on " & zRgDateVal CrLf= " 

" aMailBody = "" aMailBody = aMailBody & "Hello " & zRgSendVal & CrLf aMailBody = aMailBody & "Message: " & aRgText.Offset(j - 1).Value & CrLf aMailBody = aMailBody & "" Set aMailItem = aOutApp.CreateItem(0) With aMailItem .Subject = aMailSubject .To = zRgSendVal .HTMLBody = aMailBody .Display End With Set aMailItem = Nothing End If End If Next Set aOutApp = Nothing EndSub

  • Теперь используйте Запускайте кнопку или F5 чтобы запустить код.

  • Появится новое диалоговое окно.
  • Затем в поле ввода этого диалогового окна выберите диапазон столбца "Срок исполнения". D$5:$D$9 Затем нажмите на OK .

  • Появится еще одно диалоговое окно.
  • Кроме того, в поле ввода выберите диапазон столбцов B$5:$B$9 который содержит адреса электронной почты, и нажмите на OK .

  • Кроме того, появится еще одно окно. Выберите диапазон сообщений $C$5:$C$9 в поле ввода всплывающего окна.

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

Читать далее: Как автоматически отправлять электронную почту из Excel на основе даты

Похожие чтения

  • [Решено]: Общая рабочая книга не отображается в Excel (с простыми шагами)
  • Как отправить электронное письмо из списка Excel (2 эффективных способа)
  • Как отправить редактируемую электронную таблицу Excel по электронной почте (3 быстрых способа)
  • Макрос для отправки электронной почты из Excel (5 подходящих примеров)
  • Макрос для отправки электронной почты из Excel с телом (3 полезных случая)

3. использование макроса Excel для автоматической отправки электронной почты с вложениями

В последнем примере мы рассмотрим, как можно разработать макрос excel для автоматической отправки электронного письма с вложениями. Предположим, что у нас есть вложение, изображенное на следующем рисунке. Мы хотим отправить это вложение по электронной почте с помощью excel VBA макрос. Для этого нам нужен путь к этому excel-файлу. Вот шаги для этого:

  • Выберите файл ' Вложение.xlsx ' '.
  • Нажмите на опцию ' Путь копирования '.

  • Итак, путь к файлу, который мы получаем:
E:\Exceldemy\Attachment.xlsx

Мы вставим этот путь в наш макрокод для отправки файла по электронной почте. Для этого выполните следующие действия.

ШАГИ:

  • Во-первых, зайдите в Разработчик вкладку и выберите опцию Visual Basic .

  • Новое окно с именем ' Проект - откроется VBAProject '.
  • Во-вторых, щелкните правой кнопкой мыши на имени листа.
  • Затем выберите Вставка > Модуль .

  • Приведенная выше команда откроет пустой VBA
  • В-третьих, введите в этот модуль следующий код:
 Sub send_Email_complete() Dim MyOutlook As Object Set MyOutlook = CreateObject("Outlook.Application") Dim MyMail As Object Set MyMail = MyOutlook.CreateItem(olMailItem) MyMail.To = "[email protected]" MyMail.cc = "[email protected]" MyMail.BCC = "[email protected]" MyMail.Subject = "Sending Email with VBA." MyMail.Body = "This is a Sample Mail." Attached_File = "E:\Exceldemy\Attachment.xlsx"MyMail.Attachments.Add Attached_File MyMail.send End Sub 
  • Затем нажмите кнопку F5 или нажмите кнопку Запускайте чтобы запустить код.

  • И наконец, код отправит вложение на указанные в коде электронные адреса. Код отправляет электронные письма по следующему принципу Outlook . Итак, нажмите на Разрешить кнопку, чтобы Outlook отправить вложение на указанные электронные адреса.

Читать далее: Как применить макрос для отправки электронной почты из Excel с вложением

Заключение

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

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.