KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

Руководство по Excel – Отправка писем из Excel

АвторSiluviaДата изменения

Обычно для отправки электронных писем мы используем почтовые клиенты, такие как 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])

Аргументы

«Адрес ссылки» (обязательно): путь и имя файла документа, который необходимо открыть;
Совет: в данном руководстве все поля, необходимые для письма, такие как адрес получателя Адрес электронной почты, получатели в копии (Cc), тема и текст сообщения, должны быть помещены в первый аргумент «адрес ссылки».
«Отображаемый текст» (необязательно): значение, которое отображается в ячейке.

1,1.1,1 Добавление Адрес электронной почты в формулу гиперссылки

В данном случае для добавления получателя письма в формулу используется префикс «mailto:». В нашем примере адрес электронной почты первого получателя находится в ячейке B2, поэтому к ссылке на эту ячейку добавляется префикс «mailto:».

“mailto:”&B2

1. Выберите ячейку, в которой будет отображаться гиперссылка. В данном примере выбрана ячейка F2.

2. Затем введите в неё следующую формулу.

=HYPERLINK("mailto:"&,B2)

Примечание. После нажатия клавиши «Enter» создастся гиперссылка, как показано на скриншоте ниже. При клике по этой ссылке автоматически откроется окно создания письма в Outlook, а адрес электронной почты получателя будет подставлен в поле «Кому».

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


1,1.1,2 Добавление получателей копии в формулу гиперссылки

Чтобы добавить получателей копии в гиперссылку, включите в формулу параметр «?cc=» следующим образом.

«?cc=» & C2
где C2 содержит Адрес электронной почты получателя в поле «Копия».

Формула в ячейке F2 должна выглядеть так:

=HYPERLINK("mailto:" &, B2 &, "?cc=" &, C2)


1,1.1,3 Добавление темы письма в формулу гиперссылки

Чтобы добавить тему письма в гиперссылку, включите в формулу фрагмент «&subject=» следующим образом.

«&subject=»& D2
где D2 содержит Тема письма.

Теперь формула в ячейке F2 должна выглядеть следующим образом:

=HYPERLINK("mailto:" &, B2 &, "?cc=" &, C2 &, "&subject="&, D2)


1,1.1,4 Добавление текста сообщения с переносами строк в формулу гиперссылки

Последний шаг — добавить текст сообщения в формулу гиперссылки. Как видно из примера, две строки текста в ячейке E2 разделены символом перевода строки, и вы хотите сохранить этот перенос в теле письма. Распознаёт ли Outlook такой перенос строки в данном случае? Давайте проверим.

Чтобы добавить текст сообщения в формулу гиперссылки, включите в неё часть «&body=» следующим образом.

«&body=»& E2
где E2 содержит текст тела письма.

Теперь формула в ячейке 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», чтобы instantly получить результат.

Выделите ячейку с этой формулой и перетащите её маркер автозаполнения вниз, чтобы создать дополнительные гиперссылки для отправки писем. См. скриншот:


1,1.2 Отправка письма из Excel с помощью функции гиперссылки

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

1. Щелкните правой кнопкой мыши по ячейке, куда хотите вставить гиперссылку, и выберите в контекстном меню пункт «Ссылка».

2. В открывшемся диалоговом окне «Создать гиперссылку» выполните следующие настройки.

2,1) В левой панели выберите «Адрес электронной почты».
2,2) В поле «Текст для отображения» введите текст, который должен отображаться в ячейке;
Совет: в этом диалоговом окне нельзя использовать ссылки на ячейки, поэтому все поля электронной почты следует вводить вручную следующим образом.
2,3) В поле «Адрес электронной почты» необходимо ввести следующее:Адрес электронной почты.
mailto:Адрес электронной почты
Замените текст «Адрес электронной почты» на свой реальный Адрес электронной почты. Если у вас несколько Адрес электронной почты, разделяйте их точкой с запятой.
2,4) В поле «Тема» вы можете сразу указать тему письма и его текст. Настройте следующим образом:
Тема письма&body=Текст письма
В данном случае я ввожу «Monthly sale&body=Hi,%0AEmail received».
где тема — Monthly sale;
и
текст письма:
Hi,
Email received. («%0A» — это Возврат каретки, распознаваемый Outlook)
2,5) Нажмите кнопку «ОК», чтобы сохранить гиперссылку. См. снимок экрана:

При клике по гиперссылке автоматически откроется окно создания письма в Outlook с заранее заполненными полями «Кому», «Тема» и «Текст сообщения», как показано на скриншоте ниже.

Примечания:

1) При использовании этого метода каждую гиперссылку на электронную почту приходится создавать вручную.
2) С помощью этого метода нельзя добавить поле «Копия» (Cc). Поэтому, если оно требуется, добавьте его в открывшемся окне нового письма.

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» — выберите список адресов «Адрес электронной почты» и нажмите «ОК».

Снимок экрана диалогового окна «Kutools for Excel» с запросом списка адресов электронной почты

Примечания:

1) Если вы не хотите, чтобы появлялось указанное выше диалоговое окно, и хотите напрямую задать диапазон Адрес электронной почты в коде, замените эту строку:
Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
на
Set xRg = Range("A2:A7")
2) Вы можете задать собственные Тема письма и текст письма в следующих строках:
.Subject = "Test"
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) Чтобы отправить письмо напрямую без открытия окна нового сообщения, замените эту строку:
.Display
на
.Send

После выполнения кода все адреса электронной почты из выбранного диапазона будут отображены в поле «Кому» окна сообщения. См. скриншот:

Снимок экрана окна сообщения электронной почты со всеми адресами, заполненными в поле «Кому»


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 Outlook 16,0», установите рядом с ним флажок и нажмите «ОК», чтобы сохранить изменения.

Снимок экрана диалогового окна «Ссылки – VBAProject» в Excel с выбранным параметром Microsoft Outlook 16.0 Object Library

4. Нажмите клавишу «F5», чтобы запустить код. Откроется диалоговое окно «Kutools для Excel» — выберите список адресов «Адрес электронной почты» и нажмите «ОК».

Снимок экрана диалогового окна «Kutools for Excel» с запросом выбора списка адресов электронной почты

Примечания:

1) Если вы не хотите, чтобы появлялось указанное выше диалоговое окно, и хотите напрямую задать диапазон Адрес электронной почты в коде, замените эту строку:
Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
на
Set xRg = Range("A2:A7")
2) Вы можете задать собственные Тема письма и текст письма в следующих строках:
.Subject = "Test"
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) Чтобы отправить письмо напрямую без открытия окна сообщения, замените эту строку:
.Display
на
.Send

В данном примере диапазон «Выберите диапазон» содержит шесть адресов электронной почты, поэтому автоматически создаются шесть окон сообщений Outlook — по одному для каждого адреса в поле «Кому», как показано на скриншоте ниже.

Снимок экрана нескольких окон сообщений 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

Примечания:

1) В строке «.To = xxx@aaa.com» замените «xxx@aaa.com» на Адрес электронной почты вашего получателя;
2) Измените Тема письма и текст письма отдельно в строках «.Subject = "test"» и «.HTMLBody = "test"»;
3) При необходимости вы можете добавить получателей в поля «Копия» (Cc) и «Скрытая копия» (Bcc). Для этого добавьте следующие две строки сразу после строки «.To = xxx@aaa.com».
.CC = "email address"
.BCC = "email address"

3. Затем выберите «Сервис» > «Ссылки». В открывшемся диалоговом окне «Ссылки – VBAProject» найдите «Библиотеку объектов Microsoft Outlook 16,0», установите напротив неё флажок и нажмите «ОК», чтобы сохранить изменения.

Снимок экрана диалогового окна «Ссылки – VBAProject» в Excel с выбранным параметром Microsoft Outlook 16.0 Object Library

4. Нажмите клавишу «F5», чтобы запустить код. После этого откроется окно «Обзор» — выберите нужные файлы для вложения в письмо и нажмите «ОК».

Снимок экрана окна «Обзор» для выбора файлов, прикрепляемых к сообщению электронной почты в Excel

Затем появится окно сообщения, и вы увидите, что выбранные файлы отображаются во вложениях в поле «Вложенные файлы».

Снимок экрана окна сообщения Outlook с выбранными файлами, отображаемыми как вложения


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

Примечания:

1) В строке «.To = xxx@aaa.com» замените «xxx@aaa.com» на Адрес электронной почты реального получателя. Если у вас несколько Адрес электронной почты, разделяйте их точками с запятой.
2) Измените Тема письма и текст письма отдельно в строках «.Subject = "kte features"» и «.Body = " Please check and read this document."»;
3) В следующих двух строках:
.CC = "email address"
.BCC = "email address"
Если вы хотите добавить получателей в поля «Копия» и «Скрытая копия», замените текст «"Адрес электронной почты"» в этих строках на нужные вам Адрес электронной почты.
Если поля «Копия» и «Скрытая копия» не требуются, просто добавьте апостроф 'в начало каждой строки.

3. Нажмите клавишу «F5», чтобы запустить код. После этого текущий лист сохраняется как отдельная рабочая книга Excel и автоматически добавляется во вложение в окне сообщения. См. снимок экрана:

Снимок экрана окна сообщения Outlook с текущим листом, сохранённым и прикреплённым как книга Excel

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


2,1.3 Отправка Текущая книга во вложении

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

1. Нажмите сочетание клавиш «Alt» + «F11».

2. В открывшемся окне «Microsoft Visual Basic для приложений» выберите «Вставка» > «Модуль», затем вставьте приведённый ниже код VBA в окно модуля (Code).

Код 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

Примечания:

1) В строке «.To = xxx@aaa.com» замените «xxx@aaa.com» на Адрес электронной почты реального получателя. Если у вас несколько Адрес электронной почты, разделяйте их точками с запятой.
2) Измените Тема письма и текст письма отдельно в строках «.Subject = "kte features"» и «.Body = " Please check and read this document."»;
3) В следующих двух строках:
.CC = "email address"
.BCC = "email address"
Если вы хотите добавить получателей в поля «Копия» и «Скрытая копия», замените текст «"Адрес электронной почты"» в этих строках на нужные вам Адрес электронной почты.
Если поля «Копия» и «Скрытая копия» не требуются, просто добавьте апостроф ' в начало каждой строки.

3. Нажмите клавишу «F5», чтобы запустить код. После этого текущая книга автоматически добавится как вложение в окне сообщения. См. снимок экрана:

Снимок экрана окна сообщения Outlook с текущей книгой, автоматически прикреплённой


2,1.4 Отправка всей книги во вложении в формате PDF

Большинство пользователей предпочитают сначала сохранять рабочую книгу Excel в формате PDF, а затем отправлять её во вложении другим. В этом разделе мы покажем, как отправлять письма напрямую из Excel с текущей открытой книгой во вложении в формате PDF — без необходимости вручную сохранять файл как PDF.

1. Нажмите сочетание клавиш «Alt» + «F11».

2. В открывшемся окне «Microsoft Visual Basic для приложений» выберите «Вставка» > «Модуль», а затем вставьте приведённый ниже код VBA в окно модуля (Code).

Код 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

Примечания:

1) В строке «.To = xxx@aaa.com» замените «xxx@aaa.com» на Адрес электронной почты реального получателя. Если у вас несколько Адрес электронной почты, разделяйте их точками с запятой.
2) Измените Тема письма и текст письма отдельно в строках «.Subject = "test"» и «.Body = "test"»;
3) В следующих двух строках:
.CC = "Email Address"
.BCC = "Email Address"
Если вы хотите добавить получателей в поля «Копия» и «Скрытая копия», замените текст «"Адрес электронной почты"» в этих строках на нужные вам Адрес электронной почты.
Если поля «Копия» и «Скрытая копия» не требуются, просто добавьте апостроф ' в начало каждой строки.
4) Имя Файлы PDF будет совпадать с именем исходной книги. Кроме того, к имени Имя книги будет добавлено время выполнения кода. Если метка времени в имени файла не требуется, удалите фрагмент & Format(Now, «dd-mmm-yy h-mm-ss») из следующей строки.
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) - 1)) & Format(Now, «dd-mmm-yy h-mm-ss») & «.pdf»

3. Нажмите клавишу «F5», чтобы запустить код. После этого текущая книга автоматически добавится как вложение в формате PDF в новое окно сообщения. См. снимок экрана:

Снимок экрана окна сообщения Outlook с текущей книгой, прикреплённой как файл PDF


2,1.5 Отправка Текущий лист во вложении в формате PDF

Допустим, у вас есть книга под названием «Ежемесячные продажи», и вы уже завершили таблицу отчёта по продажам на листе «Отчёт по продажам». Теперь вы хотите отправить этот лист коллегам в формате 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

Примечания:

1) В строке «.To = xxx@aaa.com» замените «xxx@aaa.com» на Адрес электронной почты реального получателя. Если у вас несколько Адрес электронной почты, разделяйте их точками с запятой.
2) Измените Тема письма и текст письма отдельно в строках «.Subject = "test"» и «.Body = "test"»;
3) В следующих двух строках:
.CC = "Email Address"
.BCC = "Email Address"
Если вы хотите добавить получателей в поля «Копия» и «Скрытая копия», замените текст «"Адрес электронной почты"» в этих строках на нужные вам Адрес электронной почты.
Если поля «Копия» и «Скрытая копия» не требуются, просто добавьте апостроф ' в начало каждой строки.
4) Имя Файлы PDF будет состоять из имени исходной книги и имени исходного листа. В данном случае имя PDF-файла будет «Monthly sales_sales report».

3. Нажмите клавишу «F5», чтобы запустить код. После этого текущий лист автоматически вставится во вложение нового окна сообщения в формате PDF. См. снимок экрана:

Снимок экрана окна сообщения Outlook с текущим листом, прикреплённым как файл 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. Обычно для открытия окна «Microsoft Visual Basic for Applications» достаточно нажать клавиши «Alt» + «F11».

2. В окне «Microsoft Visual Basic for Applications» выберите «Вставка» > «Модуль», затем вставьте приведённый выше код VBA 2 в открывшееся окно модуля.

3. Чтобы сохранить стандартную подпись Outlook в письме, отправляемом из Excel, измените код VBA 2 следующим образом:

1) Замените строку «.Body» на «VBA code 1»;
2) Переместите строку «.Display» под строку «With OutlookMail» (или «With xMailOut» в других кодах). См. снимок экрана:

Снимок экрана с изменённым кодом VBA, где строка .Body заменена, а .Display размещена внутри блока With OutlookMail

Ниже приведён полный код после внесения изменений.

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.

Снимок экрана сообщения электронной почты в Outlook с автоматически вставленной стандартной подписью в конце текста письма


3. Автоматическая отправка писем из Excel при выполнении заданного условия с помощью сценариев VBA

В приведённых выше примерах код необходимо запускать вручную для отправки письма. Если вы хотите, чтобы код запускался автоматически при выполнении определённого условия — например, когда ячейка достигает заданного значения, когда значение ячейки изменяется, когда наступает определённая дата и т.д., — письмо будет отправлено автоматически. В этом разделе перечислены условия, которые пользователи Excel часто ищут в Google, чтобы автоматически отправлять письма из Excel при выполнении определённого условия.

3,1 Автоматическая отправка письма при достижении ячейкой определённого значения

Как показано на снимке экрана ниже, предположим, у вас есть таблица продаж, а в ячейке D6 указана итоговая сумма. Вы хотите автоматически отправлять письмо своему руководителю на основе этой суммы: например, создавать и отправлять сообщение, если итог превышает 10 000, и не предпринимать никаких действий, если он составляет 10 000 или меньше.

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

Примечания:

1) «D6» — это ячейка, значение которой определяет отправку электронного письма.
2) «> 10000» — это условие, означающее, что письмо будет отправлено, когда значение в ячейке D6 превысит 10000.
3) «Range(“D6”)» в следующей строке означает, что текст письма будет содержать значение из ячейки D6.
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
4) В строке «.To = xxx@aaa.com» замените «xxx@aaa.com» на Адрес электронной почты реального получателя. Если у вас несколько Адрес электронной почты, разделяйте их точками с запятой.
5) Измените Тема письма в строке «.Subject = "test"».
6) В следующих двух строках:
.CC = "Email Address"
.BCC = "Email Address"
Если вы хотите добавить получателей в поля «Копия» и «Скрытая копия», замените текст «"Адрес электронной почты"» в этих строках на нужные вам Адрес электронной почты.
Если поля «Копия» и «Скрытая копия» не требуются, просто добавьте апостроф ' в начало каждой строки.

Теперь, когда значение в ячейке D6 превысит 10 000, будет автоматически создано письмо, как показано на снимке экрана ниже.

Снимок экрана сообщения электронной почты, созданного в Outlook, когда значение в ячейке D6 превышает 10000 в Excel


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

Примечания: В коде

1) «B14» в коде означает, что письмо будет отправлено при изменении значения ячейки B14.
2) В строке «.To = xxx@aaa.com» замените «xxx@aaa.com» на Адрес электронной почты реального получателя. Если у вас несколько Адрес электронной почты, разделяйте их точками с запятой.
3) Измените Тема письма в строке «.Subject = "Worksheet modified"».
4) В следующих двух строках:
.CC = "Email Address"
.BCC = "Email Address"
Если вы хотите добавить получателей в поля «Копия» и «Скрытая копия», замените текст «"Адрес электронной почты"» в этих строках на нужные вам Адрес электронной почты.
Если поля «Копия» и «Скрытая копия» не требуются, просто добавьте апостроф ' в начало каждой строки.

Когда значение в ячейке B14 изменится, автоматически создастся сообщение Outlook, как показано на снимке экрана ниже.

Снимок экрана сообщения электронной почты, созданного в Outlook при изменении значения в ячейке B14


3,3 Автоматическая отправка письма при сохранении книги

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

1. Нажмите клавиши «Alt» + «F11», чтобы открыть окно Microsoft Visual Basic for Applications.

2. В этом окне дважды щелкните «ЭтаКнига» на панели «Проект», затем вставьте приведённый ниже код VBA в окно «ЭтаКнига (код)».

Код 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

Примечания: В коде

1) В строке «.To = xxx@aaa.com» замените «xxx@aaa.com» на Адрес электронной почты реального получателя. Если у вас несколько Адрес электронной почты, разделяйте их точками с запятой.
2) Измените Тема письма и текст письма отдельно в строках «.Subject = "The workbook has been updated"" and ".Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."».
3) В следующих двух строках:
.CC = "Email Address"
.BCC = "Email Address"
Если вы хотите добавить получателей в поля «Копия» (cc) и «Скрытая копия» (bcc), замените текст «Адрес электронной почты» в соответствующих строках на нужные вам Адрес электронной почты.
Если поля «Копия» и «Скрытая копия» не требуются, просто добавьте апостроф ' перед каждой строкой.

3. Теперь при сохранении книги с помощью сочетания клавиш «Ctrl» + «S» или нажатии кнопки «Сохранить» автоматически создаётся письмо в Outlook: текущая книга прикрепляется как вложение, а поля заполняются указанным содержимым. См. снимок экрана:

Снимок экрана сообщения электронной почты в Outlook с прикреплённой текущей книгой Excel, готового к автоматической отправке

Совет: Если вы часто работаете с этой книгой, сохраните её как «Книгу Excel с поддержкой макросов», чтобы оставить сценарий VBA доступным для будущего использования. Вот как это сделать.

1) Нажмите «Файл» > «Сохранить как» и выберите папку для сохранения файла.
2) В диалоговом окне «Сохранить как» укажите нужное имя файла в поле «Имя файла», выберите «Книга Excel с поддержкой макросов» в списке «Указать формат сохранения» Раскрывающийся список и нажмите кнопку «Сохранить». См. снимок экрана:

Снимок экрана диалогового окна «Сохранить как» в Excel с опцией сохранения книги как Книги Excel с поддержкой макросов


3,4 Автоматическая отправка письма в определённое время

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

1. Нажмите клавиши «Alt» + «F11», чтобы открыть окно Microsoft Visual Basic для приложений.

2. В окне «Microsoft Visual Basic для приложений» выберите «Вставка» > «Модуль», а затем вставьте приведённый ниже код 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. В этом окне дважды щёлкните «ЭтаКнига» на панели «Проект», а затем вставьте приведённый ниже код VBA в окно «ЭтаКнига (Код)».

Снимок экрана редактора кода VBA с событием Workbook_Open и функцией Application.OnTime для планирования отправки сообщения

Код VBA 2: Автоматическая отправка письма в заданное время

Private Sub Workbook_Open()
    Application.OnTime TimeValue("09:00:00"), "Timer"
End Sub

Примечания:

1) В коде VBA 1 слово «Friday» в следующей строке означает, что письмо будет автоматически отправляться каждую пятницу;
If Weekday(Date) = vbFriday Then
2) В коде VBA 1 и коде VBA 2 время «09:00:00» означает, что письмо будет отправлено в 9 часов утра в указанный день.
Вы можете изменить день и время по своему усмотрению.
3) При выполнении кода будет создано письмо. Если вы не хотите, чтобы отображалось окно сообщения, и необходимо отправить письмо напрямую, удалите строку «.Display» из кода VBA 1 и уберите апостроф перед строкой «.Send».

4. Сохраните коды, а затем сохраните книгу как книгу Excel с поддержкой макросов, как показано ниже.

4,1) Нажмите «Файл» > «Сохранить как» и выберите папку для сохранения файла.
4,2) В диалоговом окне «Сохранить как» укажите нужное имя файла в поле «Имя файла», выберите «Книга Excel с поддержкой макросов» в списке «Указать формат сохранения» Раскрывающийся список и нажмите кнопку «Сохранить». См. снимок экрана:

Снимок экрана диалогового окна «Сохранить как» в Excel с опцией сохранения книги как Книги Excel с поддержкой макросов

5. Откройте сохранённую книгу с поддержкой макросов — письмо автоматически создастся или отправится в указанный день и время.


4. Дополнительные темы

В этом разделе собраны дополнительные темы, с которыми вы можете столкнуться при отправке писем из Excel.

4,1 Отправка диапазона ячеек из Excel (с помощью сценария VBA)

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

4,1.1 Отправка диапазона как части тела письма из Excel

Вы можете использовать приведённый ниже код VBA, чтобы отправить диапазон ячеек прямо в теле письма из Excel.

1. Нажмите клавиши «Alt» + «F11», чтобы открыть окно Microsoft Visual Basic для приложений.

2. В окне «Microsoft Visual Basic для приложений» выберите «Сервис» → «Ссылки», установите флажок рядом с «Библиотека объектов Microsoft Outlook 16,0» и нажмите «ОК» в диалоговом окне «Ссылки – 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

Примечания: В коде

1) В строке «.To = xxx@aaa.com» замените «xxx@aaa.com» на реальный Адрес электронной почты получателя. Если требуется указать несколько Адрес электронной почты, разделите их точкой с запятой.
2) В следующих двух строках:
.CC = "Email Address"
.BCC = "Email Address"
Если вы хотите добавить получателей в поля «Копия» (cc) и «Скрытая копия» (bcc), замените текст «Адрес электронной почты» в соответствующих строках на нужные вам Адрес электронной почты.
Если поля «Копия» и «Скрытая копия» не требуются, просто добавьте апостроф ' перед каждой строкой.

4. Нажмите клавишу «F5», чтобы запустить код. В появившемся диалоговом окне «Kutools для Excel» выберите диапазон ячеек, который будет отправлен в теле письма, и нажмите «ОК». См. скриншот:

Снимок экрана диалогового окна Kutools for Excel, в котором выбирается диапазон ячеек для отправки в теле сообщения электронной почты

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

Снимок экрана сообщения электронной почты в Outlook с выбранным диапазоном из Excel, вставленным в тело письма


4,1.2 Отправка диапазона как вложения из Excel

Если вам нужно отправить диапазон ячеек с листа в виде вложения из Excel, воспользуйтесь приведённым ниже кодом VBA.

1. Нажмите сочетание клавиш «Alt» + «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 = "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

Примечания:

1) В строке «.To = xxx@aaa.com» замените «xxx@aaa.com» на реальный Адрес электронной почты получателя. Если требуется указать несколько Адрес электронной почты, разделите их точкой с запятой.
3) Измените Тема письма и текст письма отдельно в строках «.Subject = "Ежемесячные продажи за 2021"» и «.Body = "Здравствуйте, проверьте и прочитайте этот документ."»;
3) В следующих двух строках:
.CC = "email address"
.BCC = "email address"
Если вы хотите добавить получателей в поля «Копия» (cc) и «Скрытая копия» (bcc), замените текст «Адрес электронной почты» в соответствующих строках на нужные вам Адрес электронной почты.
Если поля «Копия» и «Скрытая копия» не требуются, просто добавьте апостроф ' перед каждой строкой.

3. Нажмите клавишу «F5», чтобы запустить код. В открывшемся диалоговом окне «Kutools для Excel» выберите диапазон ячеек, который хотите отправить как вложение в письме, и нажмите «ОК». См. скриншот:

Снимок экрана диалогового окна Kutools for Excel, в котором выбирается диапазон ячеек для отправки во вложении сообщения электронной почты

Затем автоматически создастся письмо в Outlook. Выбранный вами диапазон ячеек будет сохранён как книга Excel и прикреплён к сообщению. См. скриншот:

Снимок экрана сообщения электронной почты в Outlook с выбранным диапазоном из Excel, сохранённым во вложении


4,2 Отправка писем при нажатии кнопки в Excel

Если вам нужно нажать кнопку управления для запуска макроса, отправляющего письмо из Excel (например, чтобы отправить текущую книгу как вложение другим пользователям, просто щёлкнув кнопку на листе), выполните следующие шаги.

1. Выберите «Разработчик» > «Вставить» > «Кнопка управления (элемент ActiveX)», затем нарисуйте кнопку управления прямо на листе.

Совет: если кнопка управления уже есть, просто пропустите этот шаг.

2. Нажмите сочетание клавиш «Alt» + «F11», чтобы открыть окно «Microsoft Visual Basic для приложений». В открывшемся окне выберите «Вставка» > «Модуль» и вставьте приведённый код VBA (для отправки текущей книги как вложения из Excel) в окно «Модуль (Код)».

Нажмите здесь, чтобы получить код.

Примечание: в шаге 2 вы создали макрос с именем «SendWorkbook».

3. Нажмите клавиши «Alt» + «Q», чтобы закрыть окно Microsoft Visual Basic для приложений.

4. Теперь нужно назначить макрос кнопке управления. Щёлкните правой кнопкой мыши по кнопке и выберите в контекстном меню пункт «Просмотреть код».

5. Откроется окно «Microsoft Visual Basic для приложений», где в окне «Лист (Код)» вы увидите следующие две строки.

Private Sub CommandButton1_Click()
End Sub

Снимок экрана окна Microsoft Visual Basic for Applications с кодом CommandButton1_Click

6. Введите имя существующего макроса в процедуру для кнопки управления.

Снимок экрана редактирования кода VBA для назначения существующего макроса кнопке управления

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?

1) В вашем собственном коде замените строку, например «Dim OutlookMail As Object», на код VBA 1;
2) Добавьте код VBA 2 сразу после строки «On Error Resume Next» в вашем коде. Затем укажите Адрес электронной почты, который будет использоваться для отправки письма, в коде VBA 2.

В этом примере мы укажем конкретную учётную запись для отправки текущей книги в виде вложения из Excel. Выполните следующие действия.

1. Нажмите клавиши «Alt» + «F11». В окне «Microsoft Visual Basic для приложений» выберите «Сервис» → «Ссылки», установите флажок напротив «Библиотека объектов Microsoft Outlook 16,0» и нажмите «ОК» в диалоговом окне «Ссылки – VBAProject».

Снимок экрана диалогового окна «Ссылки – VBAProject» в Excel с выбранным параметром Microsoft Outlook 16.0 Object Library

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 дням от текущей даты (при условии, что сегодня 04,08.2022), — письмо автоматически отправляется соответствующим руководителям проектов с уведомлением о скором истечении срока.

1. На листе с таблицей проектов щелкните правой кнопкой мыши ярлык листа и выберите в контекстном меню пункт «Просмотреть код».

2. В открывшемся окне «Microsoft Visual Basic для приложений» вставьте приведённый ниже код VBA в окно «Лист (Code)».

Код 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

Примечания: В коде

1) В следующих строках диапазон «E2:E7» содержит Срок выполнения, на основе которых будут отправляться письма. Диапазон «C2:C7» содержит Адрес электронной почты, которым будут отправляться письма. А диапазон «D2:D7» содержит примечания, которые будут добавлены в текст письма для уведомления получателей о скором истечении срока проекта. Вы можете изменить диапазоны по своему усмотрению.
Set xRgDate = Range("E2:E7")
Set xRgSend = Range("C2:C7")
Set xRgText = Range("D2:D7")
2) Следующая строка означает, что Срок выполнения должна быть больше 1 дня и меньше или равна 7 дням от сегодняшней даты. Вы можете изменить это условие по своему усмотрению.
If CDate(xRgDateVal) - Date 0 Then
3) В строке «.To = xxx@aaa.com» замените «xxx@aaa.com» на реальный Адрес электронной почты получателя. Если требуется указать несколько Адрес электронной почты, разделите их точкой с запятой.
4) Измените Тема письма в строке «.Subject = "Рабочий лист изменён"».
5) В следующих двух строках:
.CC = "Email Address"
.BCC = "Email Address"
Если вы хотите добавить получателей в поля «Копия» (cc) и «Скрытая копия» (bcc), замените текст «Адрес электронной почты» в соответствующих строках на нужные вам Адрес электронной почты.
Если поля «Копия» и «Скрытая копия» не требуются, просто добавьте апостроф ' перед каждой строкой.

3. Нажмите клавишу «F5» для запуска кода. Если Срок выполнения соответствует условиям, будет создано соответствующее письмо. В данном случае создаются два письма, как показано на скриншоте ниже.

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


5. Удобный инструмент для быстрой и простой отправки писем прямо из Excel

Если вы только начинаете работать с VBA, описанные выше методы могут показаться сложными. В этом случае рекомендуем воспользоваться функцией Отправка писем из инструмента «Kutools для Excel». Благодаря этой функции вы сможете легко отправлять письма из Excel всего за несколько щелчков. Выполните следующие действия.

Kutools для Excelпредлагает более 300 расширенных функций для упрощения сложных задач, повышая креативность и эффективность.Интегрировано с возможностями ИИ, Kutools автоматизирует задачи с высокой точностью, делая управление данными простым и удобным.Подробная информация о Kutools для Excel…         Бесплатная пробная версия…
5,1 Легко создайте Список писем, включающий необходимые поля письма

Перед использованием функции «Отправка писем» необходимо создать Список писем с нужными полями письма — в этом поможет функция «Создать список рассылки».

1. Выберите «KUTOOLS PLUS» > «Создать список рассылки».

2. В открывшемся окне «Создать список рассылки» выполните следующие настройки.

2,1) В разделе «Выберите столбцы, которые нужно включить в список рассылки» отметьте поля, которые должны присутствовать в вашем письме;
2,2) В разделе «Вложение» отметьте одно или несколько вложений, которые могут понадобиться;
2,3) Укажите расположение для размещения Список писем;
2,4) Нажмите кнопку «Создать». См. снимок экрана:

Затем будет создана образцовая таблица «Список писем», как показано на скриншоте ниже.

3. Теперь замените исходные данные в шаблоне на свои собственные значения полей.

Теперь у вас есть таблица «Список писем». Перейдите к использованию функции «Отправка писем», чтобы отправлять сообщения из Excel на основе созданных вами полей.

Kutools для Excel— раскройте весь потенциал Excel с помощью более чем 300 незаменимых инструментов, которые ускоряют и упрощают вашу работу, а также воспользуйтесь возможностями ИИ для более разумной обработки данных и повышения продуктивности.Получить сейчас


5,2 Простая отправка писем с полями, созданными в Список писем

После создания Списка писем ()нажмите, чтобы узнать как) с полями, которые могут понадобиться в ваших письмах, вы сможете отправлять письма из Excel, используя эти поля.

1. Выделите весь список писем и нажмите «KUTOOLS PLUS» > «Отправить письма».

2. В диалоговом окне «Отправить письма» выполните следующую настройку.

2,1) Поля автоматически заполняются в диалоговом окне каждого поля на основе полей, указанных вами в Список писем;
Совет: если в данный момент вам не требуется определённое поле, выберите пустой вариант в Раскрывающийся список.
2,2) «Вставить заполнитель» (необязательно): если вам нужно вставить переменную информацию в тело письма.
Например, если вы хотите отправить письмо нескольким получателям с персонализированным именем для каждого, поместите курсор в то место тела письма, куда нужно вставить заполнитель, выберите поле «E: Имя» (или другое поле с именем из вашего списка рассылки) и нажмите кнопку «Вставить заполнитель»;
Когда получатели получат письмо, его тело останется неизменным, но имена будут уникальными для каждого.
2,3) Составьте тело письма по своему усмотрению;
2,4) Убедитесь, что установлен флажок «Отправить с помощью Outlook»;
2,5) Нажмите кнопку «Отправить». См. скриншот:

3. Затем появится диалоговое окно «Kutools для Excel» с указанием количества отправленных писем. Нажмите кнопку «ОК», чтобы закрыть его.

Совет: чтобы проверить отправленные письма, просто перейдите в папку «Отправленные» в Outlook.


5,3 Простая отправка писем с HTML-оформлением (включая гиперссылки, изображения и другие элементы)

Функция отправки писем позволяет создавать HTML-письма с гиперссылками, изображениями, различными размерами и цветами шрифта и другими элементами оформления.

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

См. скриншот ниже:


5,4 Простая вставка стандартной подписи Outlook при отправке писем

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

После создания списка писем с необходимыми полями электронной почты, при настройке диалогового окна «Отправить письма» выберите «Параметры» > «Использовать настройки подписи Outlook».

Примечание: убедитесь, что рядом с параметром «Использовать настройки подписи Outlook» стоит отметка.

Когда получатели получат письмо, в конце сообщения они увидят стандартную подпись Outlook.


5,5 Простая отправка писем с указанного почтового аккаунта

Чтобы отправлять письма из Excel с определённого почтового аккаунта вместо учётной записи по умолчанию, воспользуйтесь функцией отправки писем — она легко справится с этой задачей.

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

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

Нажмите здесь, чтобы узнать больше о функции отправки писем.

Kutools для Excel— раскройте весь потенциал Excel с помощью более чем 300 незаменимых инструментов, которые ускоряют и упрощают вашу работу, а также воспользуйтесь возможностями ИИ для более разумной обработки данных и повышения продуктивности.Получить сейчас

В заключение, отправка писем из Excel чрезвычайно полезна в повседневной работе. В этой статье подробно рассмотрены ключевые аспекты отправки писем из Excel. Если у вас есть дополнительные темы или более простые решения — обязательно поделитесь ими в комментариях!

Лучшие инструменты повышения продуктивности в Office

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул
Супер ПОИСК:VLookup по нескольким критериям  |  VLookup по нескольким значениям  |   VLookup по нескольким листам   |   Распознавание нечетких соответствий
Расширенный раскрывающийся список:Быстрое создание выпадающего списка   |  Зависимый выпадающий список   |  Выпадающий список с множественным выбором
Управление столбцами:Добавление заданного количества столбцов|Перемещение столбцов|Переключение видимости скрытых столбцов|Сравнение диапазонов и столбцов
Избранные функции:Сетка фокусировки   |  Просмотр дизайна   |Улучшенная строка формулы   | Управление рабочими книгами и листами   |  Библиотека ресурсов(автотекст)|  Выбор даты   |  Объединить листы  |  Шифрование/Расшифровать ячейки   | Отправка писем по списку   |  Супер фильтр   |   Специальный фильтр(Фильтр ячеек с жирным шрифтом/курсив/зачёркивание…) …
Лучшие наборы инструментов 15:12 Текстовыеинструменты(Добавить текст,Удалить определенные символы, …)|   50+Типыдиаграмм(Диаграмма Ганта, …)|   40+ Практические формулы(Рассчитать возраст на основе даты рождения, …)|   19 Инструментывставки(Вставить QR-код,Вставка изображения по пути, …)|   12 Инструментыпреобразования(Преобразовать в слова,Конвертация валют, …)|   7 Объединить и разделитьИнструменты(Расширенное объединение строк,Разделить ячейки, …)|… и многое другое
Используйте Kutools на предпочитаемом языке — поддержка английского, испанского, немецкого, французского, китайского и ещё 40+ языков!

Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…


Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
  • Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!

Все надстройки Kutools — один установщик

Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.

ExcelWordOutlookTabsPowerPoint
  • Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
  • Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
  • Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
  • 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
  • Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек