Отправить электронное письмо из Excel 2007 VBA, используя шаблон Outlook и установить переменные - PullRequest
3 голосов
/ 12 декабря 2011

У меня есть список данных, скажем, информация о клиенте (имя, адрес электронной почты, авансовый платеж и т. Д.), Хранящиеся на листе Excel.Моя цель - нажать кнопку в Excel и отправить каждому клиенту свою информацию в шаблоне Outlook.

  1. создать почтовый объект
  2. установить почтовый объект в файл шаблона
  3. установка, а затем заполнение шаблона данными о текущем клиенте - в основном здесь застряли, не знаю, как указать переменные в шаблоне и затем связать их с VBA
  4. сохранить в черновиках для последующего просмотра /отправить

напр.Уважаемый << clientname >> = Уважаемый Джон Смит

Мой код на данный момент:

Dim myOlApp As Outlook.Application
Dim MyItem As Outlook.MailItem

Set myOlApp = CreateObject("Outlook.Application")
Set MyItem = myOlApp.CreateItemFromTemplate("C:\egTemplate.oft")

With MyItem
    .To = Worksheets("Clients").Range(1, 2)
    .Subject = "Monthly bill"
    'Refer to and fill in variable items in template
    .Save
End With

Set MyItem = Nothing
Set MyOlApp = Nothing

Мне нужно знать, возможно ли это вообще, могу ли я сделать это без плагинов, и если да,Кто-нибудь знает хорошую ссылку / учебник, которым я могу следовать?

Заранее спасибо и всего наилучшего

Обновление Добавлен мой код и внесены некоторые изменения в запрос

Ответы [ 2 ]

10 голосов
/ 12 декабря 2011

Вот что вы можете сделать:

With MyItem
    'Refer to and fill in variable items in template
    .Body = Replace(.Body, "<< clientname >>", Worksheets("Clients").Range(1, 2))
End With

или, если ваша почта в формате HTML:

With MyItem
    'Refer to and fill in variable items in template
    .HTMLBody = Replace(.HTMLBody, "&lt;&lt; clientname &gt;&gt;",  Worksheets("Clients").Range(1, 2))
End With

Успешно протестировано в Excel / Outlook 2007

2 голосов
/ 12 декабря 2011

Это идеальная работа для слияния. Если вы хотите сделать это программно, см.

Объединение писем в Word + Excel с использованием VBA

Или вы можете просто сделать это вручную (из Word), вставив поля слияния, а затем выбрав вашу книгу в качестве источника данных. Вы можете объединиться с электронной почтой, и Outlook отправит персонализированные электронные письма на электронную почту каждого получателя, используя информацию из каждой строки / записи.

...