Учебник по Excel – Отправка писем из Excel
Обычно для отправки писем мы используем почтовые клиенты, такие как Outlook, Gmail и т.д. Однако многие пользователи хранят данные в книгах Excel и им необходимо отправлять эти данные другим, работая с ними. Поэтому возникает потребность отправлять письма прямо из книги Excel, что экономит время на работу с почтовым клиентом. В этом пошаговом руководстве вы узнаете, как отправлять письма из Excel в различных ситуациях.
Примечание: Перед применением следующих методов необходимо настроить почтовый клиент Outlook на вашем компьютере и установить его как клиент по умолчанию.
Оглавление: [ Скрыть ]
1. Основы отправки писем из Excel
В этом разделе рассматриваются основы отправки писем из Excel.
1.1 Отправка писем из Excel с помощью встроенных функций Excel
Если вам нужно отправить простое письмо из Excel, включающее только поля Кому, Тема, Копия и Текст письма, встроенные функции Excel помогут вам в этом.
1.1.1 Отправка письма из Excel с помощью формулы
Как показано в таблице ниже, чтобы отправлять разные письма из Excel на основе заданных полей, вы можете использовать ссылки на ячейки с этими полями для создания различных формул Hyperlink. После создания гиперссылок для писем вы сможете кликнуть по нужной ссылке, чтобы автоматически создать письмо.
Примечание: Если в полях Кому или Копия указано несколько получателей, разделяйте их точкой с запятой.
Этот раздел состоит из четырёх частей, в которых поэтапно показано, как добавить адрес электронной почты, получателя Cc, тему и текст письма в формулу Hyperlink. Пожалуйста, следуйте инструкциям.
Синтаксис и аргументы функции "HYPERLINK" приведены ниже.
Синтаксис
HYPERLINK(link_location, [friendly_name])
Аргументы
1.1.1.1 Добавление адреса электронной почты в формулу Hyperlink
Здесь мы используем "mailto:" как часть формулы для добавления получателя письма. В этом примере адрес первого получателя находится в ячейке B2, поэтому нужно добавить "mailto:" и сослаться на ячейку B2.
“mailto:”&B2
1. Выберите ячейку, в которой будет отображаться гиперссылка. В данном случае выберите ячейку F2.
2. Затем введите в неё следующую формулу.
=HYPERLINK("mailto:"&B2)
Примечание: После нажатия клавиши "Enter" будет создана гиперссылка, как показано на скриншоте ниже. При нажатии на ссылку будет создано письмо в Outlook, и адрес получателя автоматически подставится в поле Кому.
Адрес получателя теперь добавлен в формулу Hyperlink. Продолжайте выполнять следующие шаги, чтобы добавить тему, получателя Cc и текст письма по необходимости.
1.1.1.2 Добавление получателя Cc в формулу Hyperlink
Чтобы добавить получателя Cc в функцию Hyperlink, добавьте "?cc=" как часть формулы, как показано ниже.
Формула в ячейке F2 должна быть следующей:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2)
1.1.1.3 Добавление темы письма в формулу Hyperlink
Чтобы добавить тему письма в функцию Hyperlink, добавьте "&subject=" как часть формулы, как показано ниже.
Формула в ячейке F2 теперь будет выглядеть так:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2)
1.1.1.4 Добавление текста письма с переносами строк в формулу Hyperlink
Последний шаг — добавить текст письма в формулу Hyperlink. Как видно из примера, в ячейке E2 две строки текста разделены переносом строки, и вы хотите сохранить этот перенос в теле письма. Сможет ли Outlook распознать перенос строки в этом случае? Давайте проверим.
Чтобы добавить текст письма в формулу Hyperlink, необходимо добавить “&body=" как часть формулы, как показано ниже.
Формула в ячейке F2 теперь отображается следующим образом:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2)
Примечание: Если вы нажмёте клавишу "Enter" и кликнете по ссылке, то увидите, что содержимое письма отображается в одной строке.
Чтобы текст письма отображался в отдельных строках, измените содержимое ячейки, добавив код символа перевода строки "%0A" в то место, где нужен перенос строки. См. скриншот:
1.1.1.5 Указание текста для отображения гиперссылки
В предыдущих шагах мы заполнили аргумент Link_location полями письма. В этом разделе мы завершим настройку следующего аргумента [friendly_name].
В данном случае я хочу, чтобы в ячейке с гиперссылкой отображался текст "Письмо для xx", где xx — имя получателя из A2. Поэтому формулу в F2 нужно изменить на:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2, "Email to "&A2)
Нажмите клавишу "Enter", чтобы получить результат.
Выделите ячейку с формулой и перетащите маркер автозаполнения вниз, чтобы создать другие гиперссылки для писем. См. скриншот:
1.1.2 Отправка письма из Excel с помощью функции Hyperlink
Помимо использования формулы Hyperlink, вы можете вручную создать гиперссылку на письмо с помощью функции "Вставить гиперссылку" в Excel. В этом разделе показаны необходимые шаги.
1. Щёлкните правой кнопкой мыши по ячейке, где хотите вставить гиперссылку, и выберите "Ссылка" в контекстном меню.
2. В появившемся окне "Вставка гиперссылки" выполните следующие настройки.

При нажатии на гиперссылку будет создано письмо в Outlook с указанными полями Кому, Тема и Текст, как показано на скриншоте ниже.
Примечания:
1.2 Отправка письма нескольким получателям в ячейках с помощью VBA-скрипта
В приведённом выше примере видно, что в одной ячейке может быть несколько адресов электронной почты, разделённых точкой с запятой. Если у вас есть список адресов, как на скриншоте ниже, и вы хотите отправить письмо всем сразу или каждому отдельно, следующий VBA-код поможет вам.
1.2.1 Отправка письма нескольким получателям в ячейках с помощью VBA-скрипта
1. В листе, где содержатся все адреса, которым нужно отправить письмо, нажмите "Alt" + "F11" для открытия окна "Microsoft Visual Basic for Applications".
2. В окне "Microsoft Visual Basic for Applications" выберите "Вставка" > "Модуль" и вставьте следующий код в окно "Модуль (Код)".
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 для Excel. Выберите список адресов и нажмите "ОК".
Примечания:
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
После выполнения кода все адреса из выбранного диапазона будут добавлены в поле Кому окна сообщения. См. скриншот:
1.2.2 Отдельная отправка писем каждому получателю, указанному в ячейках, с помощью VBA-скрипта
Приведённый выше код добавляет все адреса из выбранного диапазона в поле Кому окна сообщения. Если вы хотите отправить письмо каждому адресу отдельно, чтобы получатели не видели адреса друг друга, используйте следующий VBA-скрипт.
1. В листе, где содержатся все адреса, которым нужно отправить письма, нажмите "Alt" + "F11" для открытия окна "Microsoft Visual Basic for Applications".
2. В окне "Microsoft Visual Basic for Applications" выберите "Вставка" > "Модуль" и вставьте следующий код в окно "Модуль (Код)".
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 Outlook16.0 Object Library", затем нажмите "ОК" для сохранения изменений.
4. Нажмите клавишу "F5" для запуска кода — появится окно Kutools для 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. Нажмите клавиши "Alt" + "F11".
2. В открывшемся окне "Microsoft Visual Basic for Applications" выберите "Вставка" > "Модуль". Затем вставьте следующий 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 = "xxx@aaa.com"
.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 Outlook16.0 Object Library", затем нажмите "ОК" для сохранения изменений.
4. Нажмите клавишу "F5" для запуска кода — появится окно "Обзор". Выберите файлы, которые нужно прикрепить к письму, и нажмите "ОК".
Затем появится окно сообщения. Вы увидите, что выбранные файлы отображаются как вложения в поле "Вложения".
2.1.2 Отправка текущего листа как вложения
Если вы хотите отправить текущий лист как вложение из Excel, используйте VBA-скрипт из этого раздела.
1. Нажмите клавиши "Alt" + "F11".
2. В открывшемся окне "Microsoft Visual Basic for Applications" выберите "Вставка" > "Модуль". Затем вставьте следующий 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 = "xxx@aaa.com"
.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 Отправка текущей книги как вложения
После изучения кода для отправки текущего листа как вложения из Excel, ниже приведён другой VBA-скрипт для отправки всей книги как вложения. Выполните следующие действия.
1. Нажмите клавиши "Alt" + "F11".
2. В открывшемся окне "Microsoft Visual Basic for Applications" выберите "Вставка" > "Модуль". Затем вставьте следующий 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 = "xxx@aaa.com"
.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. Нажмите клавиши "Alt" + "F11".
2. В открывшемся окне "Microsoft Visual Basic for Applications" выберите "Вставка" > "Модуль". Затем вставьте следующий 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 = "xxx@aaa.com"
.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-вложения
Например, у вас есть книга "Monthly sales", и вы подготовили отчёт о продажах на листе "sales report" и хотите отправить этот лист как PDF-файл коллегам. Следующий VBA-код поможет вам.
1. Нажмите клавиши "Alt" + "F11".
2. В открывшемся окне "Microsoft Visual Basic for Applications" выберите "Вставка" > "Модуль". Затем вставьте следующий 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 = "xxx@aaa.com"
.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 = "xxx@aaa.com"
.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. Обычно нужно нажать клавиши "Alt" + "F11" для открытия окна "Microsoft Visual Basic for Applications".
2. В окне "Microsoft Visual Basic for Applications" выберите "Вставка" > "Модуль". Затем вставьте вышеуказанный 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 = "xxx@aaa.com"
.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, чтобы автоматизировать отправку писем из Excel при выполнении определённого условия.
3.1 Автоматическая отправка письма при достижении ячейкой определённого значения
Как показано на скриншоте ниже, предположим, у вас есть таблица продаж, где в ячейке D6 указана сумма продаж. Вы хотите автоматически отправить письмо начальнику, если сумма продаж превышает10000, а если сумма равна или меньше10000 — никаких действий не предпринимать.
1. В листе с таблицей продаж щёлкните правой кнопкой мыши по вкладке листа и выберите "Просмотреть код" в контекстном меню.
2. В открывшемся окне "Microsoft Visual Basic for Applications" вставьте следующий 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 = "xxx@aaa.com"
.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 for Applications" вставьте следующий VBA-код в окно "Лист (Код)".
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 = "xxx@aaa.com"
.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. Нажмите клавиши "Alt" + "F11" для открытия окна "Microsoft Visual Basic for Applications".
2. В этом окне дважды кликните "ThisWorkbook" в панели "Проект", затем вставьте следующий 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 = "xxx@aaa.com"
.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
Примечание: В коде
Теперь при сохранении книги с помощью "Ctrl" + "S" или кнопки "Сохранить" автоматически будет создано письмо Outlook. Вы увидите, что текущая книга прикреплена как вложение, а поля заполнены указанным содержимым. См. скриншот:
Совет: Если вы часто используете эту книгу, рекомендуем сохранить её как "Книга Excel с поддержкой макросов", чтобы сохранить VBA-скрипт для будущего использования. Выполните следующие шаги.
3.4 Автоматическая отправка письма в определённое время
Допустим, вам нужно отправлять письмо с книгой заданий кому-то "каждую пятницу в9 утра" и хотите делать это автоматически в Excel без ручного запуска почтового клиента. В этом разделе показан способ реализации.
1. Нажмите клавиши "Alt" + "F11" для открытия окна "Microsoft Visual Basic for Applications".
2. В окне "Microsoft Visual Basic for Applications" выберите "Вставка" > "Модуль". Затем вставьте следующий VBA-код в окно "Модуль".
VBA-код1: Отправка текущей книги как вложения из 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 = "xxx@aaa.com"
.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. В этом окне дважды кликните "ThisWorkbook" в панели "Проект", затем вставьте следующий 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. Нажмите клавиши "Alt" + "F11" для открытия окна "Microsoft Visual Basic for Applications".
2. В окне "Microsoft Visual Basic for Applications" выберите "Сервис" > "Ссылки". Затем отметьте "Microsoft Outlook16.0 Object Library" и нажмите "ОК" в диалоговом окне "Ссылки – 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 = "xxx@aaa.com"
.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 для Excel выберите диапазон ячеек, который нужно отправить как часть текста письма, затем нажмите "ОК". См. скриншот:
Затем автоматически будет создано письмо Outlook. Вы увидите, что выбранный диапазон вставлен в тело письма. См. скриншот:
4.1.2 Отправка диапазона как вложения из Excel
Если нужно отправить диапазон ячеек на листе как вложение из Excel, воспользуйтесь следующим VBA-кодом.
1. Нажмите клавиши "Alt" + "F11".
2. В открывшемся окне "Microsoft Visual Basic for Applications" выберите "Вставка" > "Модуль". Затем вставьте следующий 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 = "xxx@aaa.com"
.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 для Excel выберите диапазон ячеек, который нужно отправить как вложение, затем нажмите "ОК". См. скриншот:
Затем автоматически будет создано письмо Outlook, а выбранный диапазон будет сохранён как книга Excel и прикреплён к письму. См. скриншот:
4.2 Отправка писем по нажатию кнопки в Excel
Если нужно отправить письмо из Excel по нажатию командной кнопки, например, отправить текущую книгу как вложение, выполните следующие шаги.
1. Нажмите "Разработчик" > "Вставить" > "Командная кнопка (ActiveX-элемент управления)". Нарисуйте кнопку на листе.
Совет: Если у вас уже есть командная кнопка, пропустите этот шаг.
2. Нажмите клавиши "Alt" + "F11" для открытия окна "Microsoft Visual Basic for Applications". В окне выберите "Вставка" > "Модуль" и вставьте VBA-код (код для отправки текущей книги как вложения из Excel) в окно "Модуль (Код)".
Нажмите здесь, чтобы получить код.
Примечание: Имя макроса, созданного на шаге2, — "SendWorkbook".
3. Нажмите клавиши "Alt" + "Q" для закрытия окна "Microsoft Visual Basic for Applications".
4. Теперь нужно назначить макрос командной кнопке. Щёлкните правой кнопкой мыши по кнопке и выберите "Просмотреть код" в контекстном меню.
5. Появится окно "Microsoft Visual Basic for Applications", где вы увидите две строки в окне "Лист (Код)".
Private Sub CommandButton1_Click()
End Sub
6. Введите имя существующего макроса внутри процедуры для командной кнопки.
7. Нажмите клавиши "Alt" + "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("zxm@addin99.com") Then 'Specify your email account here
OutlookMail.SendUsingAccount = xAccount
End If
Next
Как использовать приведённые выше VBA-коды?
В этом примере мы укажем определённый почтовый аккаунт для отправки текущей книги как вложения из Excel. Выполните следующие действия.
1. Нажмите клавиши "Alt" + "F11". В окне "Microsoft Visual Basic for Applications" выберите "Сервис" > "Ссылки". Затем отметьте "Microsoft Outlook16.0 Object Library" и нажмите "ОК" в диалоговом окне "Ссылки – 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("zxm@addin99.com") Then 'Specify your email account here
OutlookMail.SendUsingAccount = xAccount
End If
Next
'End
With OutlookMail
.To = "xxx@aaa.com"
.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 for Applications" вставьте следующий 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, вышеописанные методы могут показаться сложными. Рекомендуем использовать функцию Send Emails в Kutools для Excel — с её помощью вы сможете отправлять письма из Excel всего в несколько кликов. Выполните следующие действия.
5.1 Легко создать список рассылки, включающий необходимые поля электронной почты
Перед использованием функции Send Emails необходимо создать список рассылки с нужными полями. Для этого поможет функция Create Mailing List.
1. Нажмите "Kutools Plus" > "Create Mailing List".
2. В открывшемся окне "Create Mailing List" выполните следующие настройки.
После этого будет создана примерная таблица списка рассылки, как показано на скриншоте ниже.
3. Теперь замените исходные данные в примере на свои собственные.
Теперь вы создали таблицу списка рассылки. Далее примените функцию "Send Emails" для отправки писем из Excel на основе созданных вами полей.
Kutools для Excel - Усильте Excel более чем 300 необходимыми инструментами. Наслаждайтесь постоянно бесплатными функциями ИИ! Получите прямо сейчас
5.2 Легко отправлять письма с полями, которые вы создали в списке рассылки
После создания списка рассылки (нажмите, чтобы узнать как), содержащего нужные вам поля, вы сможете отправлять письма из Excel с этими полями.
1. Выделите весь список рассылки, нажмите "Kutools Plus" > "Send Emails".
2. В диалоговом окне "Send Emails" выполните следующие настройки.
3. Затем появится окно Kutools для Excel с информацией о количестве отправленных писем, нажмите "ОК" для закрытия окна.
Совет: Вы можете проверить отправленные письма в папке "Отправленные" в Outlook.
5.3 Легко отправлять письма с HTML-телом (включая гиперссылки, изображения и т.д.)
Функция Send Emails позволяет создавать html-письма, которые могут содержать гиперссылки, изображения, различные размеры и цвета шрифта и т.д.
После создания списка рассылки с нужными полями, при настройке диалогового окна Send Emails вы можете сделать текст письма более насыщенным с помощью опций на панели инструментов.
См. скриншот ниже:
5.4 Легко вставлять стандартную подпись Outlook при отправке писем
В предыдущем способе мы показали VBA-код для отправки писем со стандартной подписью Outlook. Здесь, используя функцию Send Emails, достаточно отметить одну опцию, и стандартная подпись Outlook будет автоматически вставлена в письма, отправляемые из Excel.
После создания списка рассылки с нужными полями, при настройке диалогового окна Send Emails нажмите "Options" > "Use Outlook’s signature settings".
Примечание: Убедитесь, что перед опцией Use Outlook’s signature settings стоит галочка.
Когда получатели получат письмо, они увидят стандартную подпись Outlook в конце письма.
5.5 Легко отправлять письма с определённого почтового аккаунта
Чтобы использовать определённый почтовый аккаунт для отправки писем из Excel вместо аккаунта по умолчанию, функция Send Emails также поможет сделать это легко.
После создания списка рассылки с нужными полями, при настройке диалогового окна Send Emails нажмите "Options" > "Sent from", затем выберите нужный аккаунт для отправки писем.
Примечание: После выбора почтового аккаунта перед ним появится галочка.
Нажмите здесь, чтобы узнать больше о функции Send Emails.
Kutools для Excel - Усильте Excel более чем 300 необходимыми инструментами. Наслаждайтесь постоянно бесплатными функциями ИИ! Получите прямо сейчас
В заключение, отправка писем из Excel очень полезна в повседневной работе. В этой статье рассмотрены наиболее полные темы по отправке писем из Excel. Если у вас есть другие вопросы или более простые решения, оставьте комментарий.
Лучшие инструменты для повышения продуктивности работы с Office
Ускорьте работу в Excel с Kutools для Excel и ощутите новую степень эффективности. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Нажмите здесь, чтобы выбрать нужную вам функцию...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите редактирование и чтение с вкладками в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в отдельных окнах.
- Увеличьте свою продуктивность на50% и сократите сотни лишних кликов мышью каждый день!