Отправка автозаполненного шаблона электронной почты Outlook из excel с использованием нескольких элементов текста и дополнительного форматирования текста

У меня есть шаблон электронной почты, сохраненный в Outlook. Я отправляю это письмо много раз в день. Каждое отправляемое электронное письмо отформатировано жирным шрифтом, цветным текстом, логотипом компании и уникальной информацией для этого получателя.

Уникальная информация генерируется в excel и поэтому я вручную копировал и вставлял информацию Excel в шаблон Outlook. Я хочу найти способ получить excel для автоматического заполнения шаблона для меня, включая главного получателя, получателя cc, тему и вложения, а также ячейки, вставленные в тело письма.

Я знаю, что есть путь через рассылки в Microsoft Word, но я не могу понять, как его полностью автоматизировать. Тогда excel будет делать все, но игнорирует все форматирование в тексте, и я не могу его выбрать, чтобы выделить несколько ячеек для тела текста.

Я даже не знаю, с чего начать. Ниже приведен базовый VBA для отправки электронной почты в Outlook. Но, конечно, диапазон для тела электронной почты не работает

Sub SupplierTestingEmail()

   Dim olApp As Outlook.Application
      Set olApp = CreateObject("Outlook.Application")

        Dim olMail As Outlook.MailItem
        Set olMail = olApp.CreateItem(olMailItem)

        olMail.To = Range("B1")
        olMail.Subject = Range("B2")
        olMail.Body = Range("A1:C5")
        olMail.Display

End Sub

Я хочу, чтобы электронная почта включала следующие вещи:

1) диапазон клеток для тела
2) логотип компании
3) Цветной текст
4) ссылочные ячейки
5) приложение
6) копия, мне нужно, чтобы CC кто-то.

+1
источник поделиться
1 ответ

Чтобы сохранить исходное форматирование, как только вы скопируете работу диапазона с объектной моделью Word с помощью свойства MailItem.GetInspector(Outlook), а затем вставьте его как wdFormatOriginalFormatting WdRecoveryType Enumeration (Word)


пример

Option Explicit
Public Sub Example()
' add ref - tool -> references - > Microsoft Outlook XX.X Object Library
    Dim olApp As Outlook.Application
    Set olApp = New Outlook.Application

    Dim Email As Outlook.MailItem
    Set Email = olApp.CreateItem(0)

' add ref - tool -> references - > Microsoft Word XX.X Object Library
    Dim wdDoc As Word.Document '<=========
    Set wdDoc = Email.GetInspector.WordEditor

    Dim Sht As Excel.Worksheet
    Set Sht = ThisWorkbook.Worksheets("Sheet1")

    Dim rng As Range
    Set rng = Sht.Range("A4:H16").SpecialCells(xlCellTypeVisible)
        rng.Copy

    With Email
        .To = Sht.Range("C1")
        .Subject = Sht.Range("B1")
        .Display

         wdDoc.Range.PasteAndFormat Type:=wdFormatOriginalFormatting
    End With

End Sub

превосходить

enter image description here


прогноз

enter image description here

+1
источник

Посмотрите другие вопросы по меткам или Задайте вопрос