Учебное пособие по Excel — отправка электронных писем из Excel
Обычно мы используем почтовые клиенты, такие как Outlook, Gmail и т. д., для отправки электронных писем. Но многие люди хранят данные в книгах Excel, и им необходимо отправлять некоторые данные другим, пока они работают с ними. Поэтому им необходимо отправлять электронные письма прямо из книги Excel, что экономит время на работу с почтовым клиентом. Это пошаговое руководство покажет вам, как отправлять электронные письма из Excel в различных условиях.
Внимание: Прежде чем применять следующие методы, вам необходимо настроить почтовый клиент Outlook на своем компьютере и установить его в качестве почтового клиента по умолчанию.
Содержание: [ Скрывать ]
1. Основы отправки писем из Excel
В этом разделе представлены основы отправки электронных писем из Excel.
1.1 Отправка электронных писем из Excel с помощью встроенных функций Excel
Если вы хотите отправлять только простые электронные письма из Excel, включая только поля «Кому», «Тема», «Копия» и «Тело». В этом могут помочь встроенные функции Excel.
1.1.1 Отправка электронной почты из Excel с помощью формулы
Как показано в таблице ниже, для отправки разных электронных писем из Excel на основе заданных полей вы можете использовать ссылки на ячейки заданных полей для создания различных формул гиперссылок, чтобы это сделать. После создания гиперссылок электронной почты вы можете щелкнуть гиперссылку, необходимую для автоматической отправки электронного письма.
Примечание: Если в полях «Кому» или «Копия» указано несколько получателей, разделите их точкой с запятой.
Этот раздел разделен на четыре части, чтобы показать вам шаги по добавлению адреса электронной почты, получателей копий, строки темы и основного текста отдельно в формулу гиперссылки. Пожалуйста, сделайте следующее.
Синтаксис и аргументы HYPERLINK функции следующие.
Синтаксис
HYPERLINK(link_location, [friendly_name])
аргументы
1.1.1.1 Добавить адрес электронной почты в формулу гиперссылки
Здесь мы используем "почта:" как часть формулы для добавления получателя электронной почты. В этом примере адрес электронной почты первого получателя находится в ячейке B2, поэтому нам нужно добавить «mailto:» и сослаться на ячейку B2.
«почта:»&B2
1. Выберите ячейку для отображения гиперссылки. В этом случае я выбираю ячейку F2.
2. Затем введите в него следующую формулу.
=HYPERLINK("mailto:"&B2)
Внимание: Если вы нажмете кнопку Enter ключ, будет создана гиперссылка, как показано на снимке экрана ниже. Когда вы нажмете на ссылку, будет создано электронное письмо Outlook, и адрес электронной почты получателя будет автоматически заполнен в поле «Кому».
Адрес электронной почты получателя теперь добавляется в формулу гиперссылки. Выполните следующие шаги, чтобы добавить строку темы, получателей копий и основной текст по мере необходимости.
1.1.1.2 Добавить получателей копии в формулу гиперссылки
Чтобы добавить получателей копий к функции гиперссылки, добавьте "?cc=" как часть формулы следующим образом.
Формула в ячейке F2 должна быть следующей:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2)
1.1.1.3 Добавить строку темы в формулу гиперссылки
Чтобы добавить строку темы к функции гиперссылки, добавьте "&тема=" как часть формулы следующим образом.
Формула в ячейке F2 теперь должна выглядеть следующим образом:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2)
1.1.1.4 Добавление основного текста с разрывами строк в формулу гиперссылки
Последний шаг — добавить основной текст в формулу гиперссылки. Как вы можете видеть в примере, две строки текста в E2 разделены разрывом строки, и вы хотите сохранить разрыв строки в теле письма. Распознает ли Outlook разрыв строки в этом случае? Давайте проверим это.
Чтобы добавить основной текст в формулу гиперссылки, вам нужно добавить «&тело=» как часть формулы следующим образом.
Формула в ячейке F2 теперь отображается следующим образом:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2)
Примечание: Если вы нажмете Enter ключ и нажмите на ссылку. Вы можете видеть в новом электронном письме, что содержимое в теле письма отображается в той же строке.
Чтобы отобразить тело электронной почты в отдельных строках, вам необходимо изменить содержимое ячейки, добавив код символа возврата каретки. % 0A к тексту, где нужно вставить разрыв строки. Смотрите скриншот:
1.1.1.5 Укажите текст для отображения гиперссылки
На предыдущих шагах мы завершили аргумент Link_location с полями электронной почты. Здесь, в этом разделе, мы собираемся закончить следующий аргумент [friendly_name].
В этом случае я хочу, чтобы ячейка гиперссылки отображала текст как «Электронная почта для хх”, где xx — имя получателя в формате A2. Таким образом, формулу в F2 следует изменить на:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2, "Email to "&A2)
Нажмите Enter ключ для получения результата.
Выберите эту ячейку формулы и перетащите ее Ручка автозаполнения вниз, чтобы создать другие гиперссылки электронной почты. Смотрите скриншот:
1.1.2 Отправка электронной почты из Excel с помощью функции гиперссылки
За исключением использования приведенной выше формулы гиперссылки, вы можете вручную создать гиперссылку электронной почты с Вставить Гиперссылка функция в Экселе. Этот раздел покажет вам шаги.
1. Щелкните правой кнопкой мыши письмо, в которое вы хотите вставить гиперссылку, выберите Ссылка из контекстного меню.
2. Во всплывающем Вставить гиперссылку диалоговое окно необходимо настроить следующим образом.
При нажатии на гиперссылку будет создано электронное письмо Outlook с указанными полями «Кому», «Тема» и «Тело», как показано на снимке экрана ниже.
Заметки:
1.2 Отправка электронной почты нескольким получателям в ячейках с помощью сценария VBA
В приведенном выше примере вы можете видеть, что в ячейке отображается несколько адресов электронной почты, разделенных точкой с запятой. Если у вас есть список адресов электронной почты, как показано на снимке экрана ниже, и вы хотите отправить электронное письмо или независимое электронное письмо всем им, следующий код VBA может оказать вам услугу.
1.2.1 Отправить электронное письмо нескольким получателям в ячейках с помощью сценария VBA
1. На листе, который содержит все адреса электронной почты, на которые вы хотите отправить электронное письмо. нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модуль, а затем вставьте следующий код в Модуль (код) окно.
Код VBA: отправить электронное письмо на список адресов электронной почты
Sub sendmultiple()
'updateby Extendoffice 20220802
Dim xOTApp As Object
Dim xMItem As Object
Dim xCell As Range
Dim xRg As Range
Dim xEmailAddr As String
Dim xTxt As String
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xOTApp = CreateObject("Outlook.Application")
For Each xCell In xRg
If xCell.Value Like "*@*" Then
If xEmailAddr = "" Then
xEmailAddr = xCell.Value
Else
xEmailAddr = xEmailAddr & ";" & xCell.Value
End If
End If
Next
Set xMItem = xOTApp.CreateItem(0)
With xMItem
.To = xEmailAddr
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
.Display
End With
End Sub
3. нажмите F5 ключ для запуска кода и Kutools for Excel всплывает диалоговое окно. Выберите список адресов электронной почты и нажмите OK.
Ноты:
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
После запуска кода все адреса электронной почты в выбранном диапазоне отображаются в поле «Кому» окна сообщения. Смотрите скриншот:
1.2.2 Отдельно отправлять электронные письма каждому получателю, указанному в ячейках, с помощью сценария VBA
Приведенный выше код добавляет все адреса электронной почты в выбранном диапазоне в поле «Кому» окна сообщения. Если вы хотите отправлять электронные письма на каждый адрес электронной почты, указанный в ячейках отдельно, не позволяя им видеть адреса электронной почты друг друга, вы можете попробовать следующий сценарий VBA.
1. На листе, который содержит все адреса электронной почты, на которые вы хотите отправлять электронные письма. нажмите другой + F11 ключи к откройте окно Microsoft Visual Basic для приложений.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули, а затем вставьте следующий код в окно модуля (код).
Код VBA: отправлять электронные письма на каждый адрес электронной почты, указанный в ячейках отдельно
Sub SendEmailToAddressInCells()
'Updated by Extendoffice 20220802
Dim xRg As Range
Dim xRgEach As Range
Dim xRgVal As String
Dim xAddress As String
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select the addresses list", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xRg = xRg.SpecialCells(xlCellTypeConstants, xlTextValues)
For Each xRgEach In xRg
xRgVal = xRgEach.Value
If xRgVal Like "?*@?*.?*" Then
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.To = xRgVal
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
.Display
'.Send
End With
End If
Next
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
3. Затем нажмите Инструменты > Рекомендации. В Ссылки - VBAProject диалоговое окно, найдите и отметьте Библиотека объектов Microsoft Outlook 16.0 и нажмите OK чтобы сохранить изменения.
4. нажмите F5 ключ для запуска кода и Kutools for Excel всплывает диалоговое окно. Выберите список адресов электронной почты и нажмите ОК.
Ноты:
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
В этом примере в выбранном диапазоне шесть адресов электронной почты, поэтому автоматически будет создано шесть окон сообщений Outlook с отдельным адресом электронной почты, указанным в поле «Кому», как показано на снимке экрана ниже.
5. Наконец, нажмите Отправить кнопку, чтобы отправить письмо по одному.
2. Вставьте вложения или подпись Outlook в электронные письма, отправленные из Excel (с помощью сценариев VBA).
В этом разделе показано, как вставлять вложения или подпись Outlook по умолчанию в электронные письма, отправляемые из Excel.
2.1 Вставляйте вложения в электронные письма, отправленные из Excel
Здесь мы описываем различные случаи вставки вложений, и вы можете выбрать метод в соответствии с вашими потребностями. В этом разделе вы можете научиться (щелкните любую из следующих ссылок, чтобы перейти к соответствующему методу):
2.1.1 Отправить по электронной почте определенный файл в качестве вложения
Вы можете применить следующий код VBA для отправки по электронной почте одного или нескольких файлов в папке в виде вложений из Excel.
1. нажмите другой + F11 ключи.
2. В дебюте Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем вставьте следующий код VBA в окно модуля (код).
Код VBA: файлы электронной почты в папке в виде вложений из Excel
Sub EmailWithAttachments()
'Updated by Extendoffice 20220802
Dim xStrFile As String
Dim xFilePath As String
Dim xFileDlg As FileDialog
Dim xFileDlgItem As Variant
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
If xFileDlg.Show = -1 Then
With xMailOut
.BodyFormat = olFormatRichText
.To = ""
.Subject = "test"
.HTMLBody = "test"
For Each xFileDlgItem In xFileDlg.SelectedItems
.Attachments.Add xFileDlgItem
Next xFileDlgItem
.Display
End With
End If
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
Заметки:
3. Затем нажмите Инструменты > Рекомендации. В Ссылки - VBAProject диалоговое окно, найдите и отметьте Библиотека объектов Microsoft Outlook 16.0 и нажмите OK чтобы сохранить изменения.
4. нажмите F5 ключ для запуска кода, затем ЛИСТАТЬ СПИСКИ появится всплывающее окно, выберите файлы, которые необходимо прикрепить к электронному письму, а затем нажмите OK.
Затем всплывает окно сообщения. Вы можете видеть, что выбранные файлы отображаются в виде вложений в поле «Прикрепленные».
2.1.2 Отправьте текущий рабочий лист по электронной почте в виде вложения
Если вы хотите отправить текущий рабочий лист по электронной почте в виде вложения из Excel, вы можете применить сценарий VBA в этом разделе.
1. нажмите другой + F11 ключи.
2. В дебюте Microsoft Visual Basic для приложений окна, нажмите вставить > Модули. Затем вставьте следующий код VBA в Модуль (код) окно.
Код VBA: отправьте текущий рабочий лист по электронной почте в виде вложения
Sub SendWorkSheet()
'Update by Extendoffice 20220802
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte features"
.Body = "Please check and read this document."
.Attachments.Add Wb2.FullName
.Display
'.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub
Ноты:
3. нажмите F5 для запуска кода, то текущий рабочий лист сохраняется как рабочая книга Excel и автоматически вставляется в окно сообщения в виде вложения. Смотрите скриншот:
Примечание: Прикрепленная рабочая книга, содержащая только текущий рабочий лист, имеет то же имя, что и исходная рабочая книга. И время запуска кода также добавляется к имени книги.
2.1.3 Отправить текущую книгу по электронной почте в виде вложения
Изучив код VBA для отправки по электронной почте текущей рабочей таблицы в виде вложения из Excel, здесь мы предоставляем еще один сценарий VBA, который поможет вам отправить по электронной почте всю книгу в виде вложения. Пожалуйста, сделайте следующее.
1. нажмите другой + F11 ключи.
2. В дебюте Microsoft Visual Basic для приложений окна, нажмите Вставить > Модуль. Затем вставьте следующий код VBA в окно модуля (код).
Код VBA: отправьте текущую книгу по электронной почте в виде вложения из Excel
Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
Ноты:
3. нажмите F5 ключ для запуска кода, то текущая книга автоматически вставляется в окно сообщения в качестве вложения. Смотрите скриншот:
2.1.4 Электронная почта всей книги в виде вложения PDF
Большинство людей склонны сохранять книгу Excel в виде файла PDF, а затем отправлять ее другим в виде вложения. В этом разделе я покажу вам способ отправки электронных писем непосредственно из Excel с текущей открытой книгой в виде вложения PDF без необходимости вручную сохранять книгу в виде файла PDF.
1. нажмите другой + F11 ключи.
2. В дебюте Microsoft Visual Basic для приложений окна, нажмите Вставить > Модуль. Затем вставьте следующий код VBA в окно модуля (код).
Код VBA: отправьте всю книгу по электронной почте в виде вложения PDF
Sub SendWorkBookAsPDF()
'Update 20220803
Dim Wb As Workbook
Dim FilePath As String
Dim FileName As String
Dim xOutApp As Object
Dim xOutMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) - 1)) & Format(Now, "dd-mmm-yy h-mm-ss") & ".pdf"
FilePath = Environ$("temp") & "\" & FileName
Wb.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
FilePath, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
With xOutMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FilePath
.Display 'or use .Send
End With
Kill FilePath
Set xOutMail = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
Ноты:
3. нажмите F5 ключ для запуска кода. Затем текущая книга автоматически вставляется в новое окно сообщения в виде вложенного файла PDF. Смотрите скриншот:
2.1.5 Отправьте текущий рабочий лист по электронной почте в виде вложения PDF
Например, есть рабочая книга с названием «Ежемесячные продажи», и вы завершили таблицу отчета о продажах на листе с названием «Отчет о продажах» и хотите отправить эту таблицу в виде файла PDF своим коллегам. Следующий код VBA может оказать вам услугу.
1. нажмите другой + F11 ключи.
2. В дебюте Microsoft Visual Basic для приложений окна, нажмите вставить > Модуль. Затем вставьте следующий код VBA в окно модуля (код).
Код VBA: отправьте текущий рабочий лист по электронной почте в виде вложения PDF
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FileName
.Display
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
Ноты:
3. нажмите F5 ключ для запуска кода. Затем текущий рабочий лист автоматически вставляется в новое окно сообщения в виде вложения файла PDF. Смотрите скриншот:
2.2 Вставьте подпись Outlook в электронные письма, отправленные из Excel
Возьмем приведенный выше случай в качестве примера: вы применяете приведенный выше код VBA для отправки текущего рабочего листа в виде вложения PDF-файла из Excel, но подпись Outlook не может быть добавлена в окно сообщения. Чтобы сохранить подпись Outlook по умолчанию в электронном письме, отправленном из Excel, поможет следующий метод.
Два кода VBA перечислены ниже.
Код VBA 1: код помогает сохранить подпись Outlook.
Код VBA 2: код помогает отправить текущий рабочий лист по электронной почте в виде вложения PDF.
Код VBA 1: сохранить подпись Outlook
.HTMLBody = "Email body" & "
" & .HTMLBody
Код VBA 2: отправить текущий рабочий лист по электронной почте в виде вложения PDF
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FileName
.Display
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
1. Обычно вам нужно нажать кнопку другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем вставьте указанный выше код VBA 2 в окно «Модуль (код)».
3. Чтобы сохранить подпись Outlook по умолчанию в электронном письме, отправленном из Excel, вам необходимо изменить код VBA 2 следующим образом:
Вот полный код после модификации.
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.Display
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.HTMLBody = "Email body" & "
" & .HTMLBody
.Attachments.Add FileName
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
4. нажмите F5 ключ для запуска кода. Затем вы получите новое окно сообщения с текущим рабочим листом, прикрепленным в виде файла PDF, а подпись Outlook по умолчанию будет автоматически вставлена в конец тела электронной почты.
3. Автоматически отправлять электронные письма из Excel при выполнении условия (с помощью сценариев VBA)
В приведенных выше примерах вам нужно запустить код вручную, чтобы добиться доставки электронной почты. Если вы хотите активировать код автоматически при выполнении определенного условия, например, когда ячейка достигает определенного значения, когда значение ячейки изменяется, когда достигается дата и т. д., электронное письмо будет отправлено автоматически. В этом разделе перечислены условия, которые пользователи Excel часто искали в Google, чтобы помочь вам автоматически отправлять электронные письма из Excel при выполнении определенного условия.
3.1 Автоматически отправлять электронное письмо, когда ячейка достигает определенного значения
Как показано на снимке экрана ниже, предположим, что у вас есть таблица продаж с ячейкой D6, содержащей общую сумму продаж. Вы хотите автоматически отправлять электронное письмо своему начальнику на основе общего объема продаж, например, создать или отправить электронное письмо автоматически, когда общий объем продаж превышает 10000 10000, но если общий объем продаж равен или меньше XNUMX XNUMX, никаких действий не предпринимается.
1. На рабочем листе содержится таблица продаж, щелкните правой кнопкой мыши вкладку листа и выберите Посмотреть код из контекстного меню.
2. В дебюте Microsoft Visual Basic для приложений окно, вставьте следующий код VBA в Лист (Код) окно.
Код VBA: автоматически отправлять электронное письмо, когда ячейка достигает определенного значения в Excel
Dim xRg As Range
'Update by Extendoffice 20200803
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set xRg = Intersect(Range("D6"), Target)
If xRg Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10000 Then
Call Mail_small_Text_Outlook
End If
End Sub
Sub Mail_small_Text_Outlook()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
On Error Resume Next
With xOutMail
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "test"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub
Private Sub Worksheet_Calculate()
Dim xI As Integer
Dim xRg As Range
Set xRg = Range("D6")
On Error GoTo Err01
xI = Int(xRg.Value)
If xI > 10000 Then
Call Mail_small_Text_Outlook
End If
Err01:
End Sub
Заметки:
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
С этого момента, когда значение в ячейке D6 превысит 10000, будет создано электронное письмо, как показано на снимке экрана ниже.
3.2 Автоматически отправлять электронное письмо при изменении значения ячейки
Как показано на снимке экрана ниже, предположим, что вы получили книгу, содержащую ежемесячные продажи на разных листах и общую сумму продаж на листе. Вам необходимо проверить общий объем продаж и, если общий объем продаж изменен, отправить книгу обратно отправителю и сообщить отправителю, что ячейка была изменена.
1. На рабочем листе содержится таблица продаж, щелкните правой кнопкой мыши вкладку листа и выберите Посмотреть код из контекстного меню.
2. В дебюте Microsoft Visual Basic для приложений вставьте следующий код VBA в окно Sheet (Code).
Код VBA: автоматически отправлять электронное письмо при изменении указанного значения ячейки
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220803
Dim xRgSel As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xMailBody As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xBoolean = False
Set xRg = Range("B14")
Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
Set xRgSel = xItsRG
xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
Set xRgSel = xDDs
xBoolean = True
ElseIf Not (xDs Is Nothing) Then
Set xRgSel = xDs
xBoolean = True
End If
ActiveWorkbook.Save
If xBoolean Then
Debug.Print xRgSel.Address
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xMailBody = "The cell " & xRgSel.Address(False, False) & _
" in the worksheet '" & Me.Name & "' were modified on " & _
Format$(Now, "mm/dd/yyyy") & " at " & Format$(Now, "hh:mm:ss") & _
" by " & Environ$("username") & "."
With xMailItem
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "Worksheet modified"
.Body = xMailBody
.Attachments.Add (ThisWorkbook.FullName)
.Display
End With
Set xRgSel = Nothing
Set xOutApp = Nothing
Set xMailItem = Nothing
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Заметки: В коде
Отныне при изменении значения в ячейке B14 сообщение Outlook будет создаваться автоматически, как показано на снимке экрана ниже.
3.3 Автоматически отправлять электронное письмо при сохранении книги
Если у вас есть рабочая книга, которой необходимо поделиться с другими после изменения, обычно вам нужно сохранить рабочую книгу, запустить почтовый клиент, создать новое электронное письмо с прикрепленной этой рабочей книгой, заполнить соответствующие поля и отправить электронное письмо. В этом разделе будет показан способ автоматического создания электронного письма каждый раз при сохранении книги. Пожалуйста, сделайте следующее.
1. нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. В этом окне дважды щелкните Эта рабочая тетрадь в Проект панели, затем вставьте следующий код VBA в ThisWorkbook (Код) окно.
Код VBA: автоматически отправлять электронное письмо при сохранении книги
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20220804
Dim xOutApp As Object
Dim xMailItem As Object
Dim xName As String
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xName = ActiveWorkbook.FullName
With xMailItem
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "The workbook has been updated"
.Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
.Attachments.Add xName
.Display
'.send
End With
Set xMailItem = Nothing
Set xOutApp = Nothing
End Sub
Заметки: В коде
3. Отныне при сохранении книги нажатием кнопки Ctrl + S клавиши или нажав кнопку Сохранить кнопка, электронная почта Outlook будет создана автоматически. Вы можете видеть, что текущая рабочая книга прикреплена как вложение, а поля заполнены указанным содержимым. Смотрите скриншот:
Советы: Если вы часто используете эту книгу, здесь рекомендуется сохранить книгу как Excel Macro-Enabled Workbook чтобы сохранить сценарий VBA для использования в будущем. Шаги следующие.
3.4 Автоматически отправлять электронное письмо в определенное время
Допустим, вам нужно отправить кому-то электронное письмо с рабочей тетрадью назначения задач. каждую пятницу в 9 утраи хотите сделать это автоматически в Excel без необходимости вручную управлять почтовым клиентом. Этот раздел покажет вам, как это сделать.
1. нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модуль. Затем вставьте следующий код VBA в окно модуля.
VBA code1: отправить текущую книгу по электронной почте в виде вложения из Excel
Sub Timer()
If Weekday(Date) = vbFriday Then
SendWorkBook
Application.OnTime TimeValue("09:00:00"), "Timer"
Else
Application.OnTime TimeValue("09:00:00"), "Timer"
End If
End Sub
Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
3. В этом окне дважды щелкните Эта рабочая тетрадь в Проект панели, затем вставьте следующий код VBA в ThisWorkbook (Код) окно.
Код VBA 2: автоматически отправлять электронное письмо в определенное время
Private Sub Workbook_Open()
Application.OnTime TimeValue("09:00:00"), "Timer"
End Sub
Заметки:
4. Сохраните коды, а затем сохраните книгу как книгу Excel с поддержкой макросов следующим образом.
5. Откройте сохраненную книгу с поддержкой макросов, после чего электронное письмо будет создано или отправлено автоматически, когда наступит день и время.
4. Дополнительные темы
В этом разделе собраны другие темы, с которыми вы можете столкнуться при отправке электронных писем из Excel.
4.1 Электронная почта диапазона ячеек из Excel (с помощью скрипта VBA)
Предположим, что на листе Excel есть ежемесячная таблица продаж, как показано на снимке экрана ниже, и вам нужно отправить эту ежемесячную таблицу продаж другим пользователям в виде содержимого электронного письма или непосредственно в виде вложения. Здесь мы предлагаем вам два способа сделать это.
4.1.1 Электронная почта диапазона как часть основного содержимого из Excel
Вы можете запустить следующий код VBA, чтобы отправить диапазон ячеек как часть содержимого тела электронной почты из Excel.
1. нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Инструменты > Рекомендации. А затем проверьте Библиотека объектов Microsoft Outlook 16.0 поле и нажмите OK в Ссылки - VBAProject диалоговое окно.
3. Нажмите Вставить > Модули, затем вставьте следующий код VBA в Модуль (код) окно.
Код VBA: отправьте диапазон ячеек как часть содержимого тела электронной почты из Excel.
Sub SendARangeofCells()
'Updated by Extendoffice 20220809
Dim xRg As Range
Dim I, J As Long
Dim xAddress As String
Dim xMailOut As Object
Dim xOutApp As Object
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.Subject = "test"
.To = ""
.CC = "Email address"
.BCC = "Email address"
.HTMLBody = RangetoHTML(xRg)
.Display
'.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
' The following VBA script is cited from this page:
' https://stackoverflow.com/questions/18663127/paste-excel-range-in-outlook
Function RangetoHTML(rng As Range)
' By Ron de Bruin.
Dim fso As Object
Dim ts As Object
Dim TempFile As String
Dim TempWB As Workbook
TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
'Copy the range and create a new workbook to past the data in
rng.Copy
Set TempWB = Workbooks.Add(1)
With TempWB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
On Error Resume Next
.DrawingObjects.Visible = True
.DrawingObjects.Delete
On Error GoTo 0
End With
'Publish the sheet to a htm file
With TempWB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=TempFile, _
Sheet:=TempWB.Sheets(1).Name, _
Source:=TempWB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
'Read all data from the htm file into RangetoHTML
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
RangetoHTML = ts.ReadAll
ts.Close
RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
"align=left x:publishsource=")
'Close TempWB
TempWB.Close savechanges:=False
'Delete the htm file we used in this function
Kill TempFile
Set ts = Nothing
Set fso = Nothing
Set TempWB = Nothing
End Function
Заметки: В коде
4. нажмите F5 ключ для запуска кода. Во всплывающем окне Kutools for Excel диалоговое окно, выберите диапазон ячеек, которые необходимо отправить как часть содержимого сообщения электронной почты, затем щелкните OK. Смотрите скриншот:
Затем электронная почта Outlook будет создана автоматически. Вы можете видеть, что диапазон, выбранный вами на листе, вставлен в тело электронной почты. Смотрите скриншот:
4.1.2 Электронная почта диапазона в виде вложения из Excel
Если вам нужно отправить по электронной почте диапазон ячеек на листе в виде вложения из Excel. Вы можете попробовать следующий код VBA.
1. нажмите другой + F11 ключи.
2. В дебюте Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем вставьте следующий код VBA в Модуль (код) окно.
Код VBA: диапазон по электронной почте в виде вложения из Excel
Sub SendRange()
'Update 20220809
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "Monthly sales for 2021"
.Body = "Hello, please check and read this document. "
.Attachments.Add Wb2.FullName
.Display
'.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Заметки:
3. нажмите F5 ключ для запуска кода. Во всплывающем окне Kutools for Excel диалоговое окно, выберите диапазон ячеек, который необходимо отправить в качестве вложения в сообщение электронной почты, затем щелкните OK. Смотрите скриншот:
Затем электронная почта Outlook будет создана автоматически. И диапазон ячеек, выбранных вами на листе, сохраняется как книга Excel и прикрепляется к окну сообщения. Смотрите скриншот:
4.2 Отправка электронных писем при нажатии кнопки в Excel
Если вам нужно щелкнуть командную кнопку, чтобы вызвать макрос для отправки электронной почты из Excel, например, отправьте текущую книгу в качестве вложения другим, нажав командную кнопку на рабочем листе. Вы можете выполнить следующие шаги, чтобы сделать это.
1. Нажмите Застройщик > Вставить > Командная кнопка (элемент управления ActiveX). Затем нарисуйте командную кнопку на листе.
Советы: если у вас уже есть командная кнопка, пропустите этот шаг.
2. нажмите другой + F11 , чтобы открыть Microsoft Visual Basic для приложений окно. В окне нажмите Вставить > Модуль, затем вставьте код VBA (код, используемый для отправки текущей книги по электронной почте в виде вложения из Excel) в окно модуля (код).
Нажмите сюда чтобы получить код.
Внимание: здесь имя макроса, созданного на шаге 2, ОтправитьКнигу.
3. нажмите другой + Q ключи, чтобы закрыть Microsoft Visual Basic для приложений окно.
4. Теперь нужно назначить макрос на командную кнопку. Щелкните правой кнопкой мыши командную кнопку, выберите Просмотреть код из контекстного меню.
5. Затем Microsoft Visual Basic для приложений всплывающее окно, вы можете увидеть следующие две строки, перечисленные в Лист (Код) окно.
Private Sub CommandButton1_Click()
End Sub
6. Введите имя существующего макроса внутри подпроцедуры для командной кнопки.
7. нажмите другой + Q ключи, чтобы закрыть Редактор Visual Basicи нажмите Застройщик > Режим проектирования чтобы выключить режим дизайна.
Теперь вы можете нажать кнопку команды, чтобы отправить электронное письмо с текущей книгой в качестве вложения в электронное письмо.
4.3 Отправка писем с указанной учетной записи электронной почты
Обычно при запуске электронной почты из Excel с кодом VBA учетная запись электронной почты отправителя является учетной записью по умолчанию в Outlook. Предположим, вы настроили несколько учетных записей электронной почты в своем Outlook и хотите использовать определенную учетную запись для отправки электронных писем из Excel вместо использования учетной записи по умолчанию. Следующий код VBA может помочь.
В этом случае необходимы следующие коды.
Код VBA 1:
Dim OutlookMail As Outlook.MailItem
Код VBA 2:
For Each xAccount In OutlookApp.Session.Accounts
If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("") Then 'Specify your email account here
OutlookMail.SendUsingAccount = xAccount
End If
Next
Как использовать приведенный выше код VBA?
В этом примере мы собираемся указать определенную учетную запись электронной почты для отправки текущей книги в виде вложения из Excel. Пожалуйста, сделайте следующее.
1. нажмите другой + F11 ключи. в Microsoft Visual Basic для приложений окна, нажмите Инструменты > Рекомендации. А затем проверьте Библиотека объектов Microsoft Outlook 16.0 поле и нажмите OK в Ссылки - VBAProject диалоговое окно.
2. Нажмите Вставить > Модули. Затем вставьте следующий код VBA в Модуль (код) окно.
Код VBA: отправить текущую книгу в виде вложения электронной почты из Excel через указанную учетную запись Outlook.
Sub SendWorkBook()
'Update by Extendoffice 20220809
Dim OutlookApp As Object
Dim OutlookMail As Outlook.MailItem 'important! Here can’t be declared as Object
Dim xAccount As Account
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(olMailItem)
On Error Resume Next
'The following lines helps to specify a certian email account
For Each xAccount In OutlookApp.Session.Accounts
If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("") Then 'Specify your email account here
OutlookMail.SendUsingAccount = xAccount
End If
Next
'End
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
3. нажмите F5 ключ для запуска кода. Затем появляется сообщение электронной почты Outlook, вы можете видеть, что от Поле заполняется учетной записью электронной почты, которую вы указали в коде.
4.4 Отправить электронное письмо, когда наступит дата
Если вам нужно отправить электронное письмо на основе определенной даты выполнения, например, как показано на снимке экрана ниже, есть таблица проекта, когда срок выполнения в диапазоне E2:E7 равен или меньше 7 дней от сегодняшнего дня (при условии, что текущая дата — 2022/8/4), руководителям соответствующих проектов будет автоматически отправлено электронное письмо с уведомлением о скором истечении срока действия проекта.
1. На рабочем листе содержится таблица проекта, щелкните правой кнопкой мыши вкладку листа и выберите Посмотреть код из контекстного меню.
2. В дебюте Microsoft Visual Basic для приложений окно, вставьте следующий код VBA в Лист (Код) окно.
Код VBA: автоматически отправлять электронное письмо при наступлении срока
Public Sub SendMailDueDate()
'Updated by Extendoffice 20220804
Dim xRgDate As Range
Dim xRgSend As Range
Dim xRgText As Range
Dim xRgDone As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xLastRow As Long
Dim vbCrLf As String
Dim xMailBody As String
Dim xRgDateVal As String
Dim xRgSendVal As String
Dim xMailSubject As String
Dim i As Long
On Error Resume Next
Set xRgDate = Range("E2:E7") 'Please reference the due date column range
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Range("C2:C7") 'Please reference the email addresses column range
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Range("D2:D7") 'Please reference the remark column range (the remark used to notify project leaders of the expiration of the project)
If xRgText Is Nothing Then Exit Sub
xLastRow = xRgDate.Rows.Count
Set xRgDate = xRgDate(1)
Set xRgSend = xRgSend(1)
Set xRgText = xRgText(1)
Set xOutApp = CreateObject("Outlook.Application")
For i = 1 To xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
If xRgDateVal <> "" Then
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
vbCrLf = "
"
xMailBody = ""
xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Remark : " & xRgText.Offset(i - 1).Value & vbCrLf
xMailBody = xMailBody & ""
Set xMailItem = xOutApp.CreateItem(0)
With xMailItem
.Subject = xMailSubject
.To = xRgSendVal
.CC = "Email address"
.BCC = "Email address"
.HTMLBody = xMailBody
.Display
'.Send
End With
Set xMailItem = Nothing
End If
End If
Next
Set xOutApp = Nothing
End Sub
Заметки: В коде
3. нажмите F5 ключ для запуска кода. Затем, если срок действия соответствует условиям, будет создано соответствующее электронное письмо. В этом случае будут созданы два письма, как показано на скриншоте ниже.
5. Удобный инструмент, который поможет вам легко отправлять электронные письма из Excel.
Если вы новичок в VBA, описанные выше методы могут оказаться для вас непростыми. Здесь мы рекомендуем Kutools for ExcelАвтора Отправить письма функция, с помощью которой вы можете легко отправлять электронные письма из Excel всего несколькими щелчками мыши. Пожалуйста, сделайте следующее.
Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.
5.1 Легко создавайте список рассылки, включающий нужные поля электронной почты
Прежде чем применять функцию отправки электронных писем, вам необходимо создать список рассылки, содержащий необходимые поля электронной почты. Здесь может помочь функция «Создать список рассылки».
1. Нажмите Кутулс Плюс > Создать список рассылки.
2. В дебюте Создать список рассылки окно необходимо настроить следующим образом.
Затем создается образец таблицы списка рассылки, как показано на снимке экрана ниже.
3. Теперь вам нужно заменить исходные данные в образце своими полевыми данными.
Теперь вы создали таблицу списка рассылки. Пожалуйста, продолжайте применять Отправить письма возможность отправлять электронные письма из Excel на основе созданных вами полей.
Если вы хотите получить бесплатную (30-дневную) пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
5.2 Легко отправлять электронные письма, включая поля, которые вы создали в списке рассылки
После создания списка рассылки (нажмите, чтобы узнать как), который содержит поля, которые могут вам понадобиться в ваших электронных письмах, теперь вы можете отправлять электронные письма из Excel с этими полями.
1. Выберите весь список рассылки, нажмите Кутулс Плюс > Отправить письма.
2. в Отправить письма диалоговое окно, выполните следующую настройку.
3. Затем Kutools for Excel диалоговое окно всплывает, чтобы сообщить вам, сколько писем отправлено, нажмите OK кнопку, чтобы закрыть это диалоговое окно.
Советы: Вы можете перейти в Отправленные вещи папку в Outlook, чтобы проверить отправленные вами электронные письма.
5.3 Легко отправлять электронные письма с телом HTML (включая гиперссылку, изображение и т. д.)
Эта функция отправки электронных писем позволяет вам создавать электронные письма в формате html, которые включают гиперссылки, изображения, различные размеры и цвета шрифтов и т. д.
После создание списка рассылки, который включает в себя поля электронной почты, которые вам нужны,
Когда вы настроить диалоговое окно отправки писем, вы можете сделать содержимое тела более насыщенным с помощью параметров на панели инструментов.
Смотрите скриншот ниже:
5.4 Простая вставка подписи Outlook по умолчанию при отправке электронных писем
В приведенном выше методе мы продемонстрировали код VBA, который поможет вам отправлять электронные письма с подписью Outlook по умолчанию. Здесь с функцией «Отправить электронные письма» вам просто нужно отметить параметр, после чего подпись Outlook по умолчанию будет вставлена в электронные письма, отправленные вами из Excel.
После создание списка рассылки, который включает в себя поля электронной почты, которые вам нужны,
После появления настроить диалоговое окно отправки писем, вам нужно нажать Опции > Использовать настройки подписи Outlook.
Внимание: убедитесь, что перед параметром «Использовать настройки подписи Outlook» стоит галочка.
Когда получатели получают электронное письмо, они могут видеть подпись Outlook по умолчанию, отображаемую в конце тела электронного письма.
5.5 Легко отправлять электронные письма с указанной учетной записи электронной почты
Чтобы использовать определенную учетную запись электронной почты для отправки электронных писем из Excel вместо использования учетной записи по умолчанию, функция «Отправить электронные письма» также может помочь легко сделать это.
После создание списка рассылки, который включает в себя поля электронной почты, которые вам нужны,
После появления настроить диалоговое окно отправки писем, вам нужно нажать Опции > Отправлено из, затем щелкните учетную запись электронной почты, с которой нужно отправлять электронные письма.
Внимание: после выбора учетной записи электронной почты перед ней будет отображаться галочка.
Нажмите здесь чтобы узнать больше об этой функции отправки электронных писем.
Если вы хотите получить бесплатную (30-дневную) пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
В заключение, отправка электронных писем из Excel весьма полезна в нашей повседневной работе. В этой статье рассматриваются более подробные темы отправки электронных писем из Excel. Если есть другие темы или более простые решения, оставьте комментарий, чтобы сообщить мне об этом.
Лучшие инструменты для офисной работы
Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!