Я хочу автоматически создать приветствие с именем получателя в новых сообщениях.
Например, следует проверить поле «Кому» и, если есть адрес электронной почты, взять имя из контакт и заполните тело сообщения (например, Уважаемый [Имя], ).
Я не знаю, какой метод или событие использовать, если я нажму Новое сообщение и какой метод или событие использовать, чтобы увидеть, добавлен ли получатель. (Макрос должен запускаться каждый раз, когда добавляется получатель.) Если получателей больше, чем два, должно быть «Привет всем»
. Для ответа я использую событие «Ответ», которое происходит, когда пользователь выбирает действие ответа.
Private Sub GMailItem_Reply(ByVal Response As Object, Cancel As Boolean)
AutoAddGreetingToReply Response
End Sub
Это находит имя получателя и добавляет приветствие к ответному сообщению.
Я также пробовал с документом Word, который содержит поля слияния для слияния, но это не не работает Вот код, который я использую для слияния электронной почты.
Option Explicit
Public Sub MailMergeAttachments()
Dim Session As Outlook.NameSpace
Dim currentExplorer As Explorer
Dim Selection As Selection
Dim oContact As ContactItem
Dim oMail As MailItem
Dim attach As Attachment
Dim obj As Object
Dim oWord As Word.Application
Dim oDoc As Word.Document
Dim tmp As String
' Uses current user's profile
Dim enviro As String
enviro = CStr(Environ("USERPROFILE"))
' Get Word
Set oWord = GetObject(, "Word.Application")
Set oDoc = oWord.Documents(1)
tmp = oDoc.FullName
oDoc.Activate
oWord.Visible = True
Set currentExplorer = Application.ActiveExplorer
Set Selection = currentExplorer.Selection
If Not TypeOf Selection.Item(1) Is Outlook.ContactItem Then
MsgBox "You need to select Contacts first!"
Exit Sub
End If
For Each obj In Selection
'Test for ContactGroups
If TypeName(obj) = "ContactItem" Then
Set oContact = obj
Dim mText As String
Dim f As Word.Field
For Each f In oDoc.Fields
If f.Type = wdFieldMergeField Then
' match Word mergefields with Outlook fields
Select Case f.Code
Case " MERGEFIELD First "
mText = oContact.FirstName
Case " MERGEFIELD Last "
mText = oContact.LastName
Case " MERGEFIELD Company "
mText = oContact.CompanyName
End Select
f.Result.Text = mText
End If
Next
Set oMail = Application.CreateItem(olMailItem)
With oMail
.To = oContact.Email1Address
.Subject = Left(oDoc.Name, Len(oDoc.Name) - 5)
'The content of the document is used as the body for the email
.Body = oDoc.Content
.Attachments.Add enviro & "\Documents\instructions.pdf"
.Display ' .send
End With
End If
Next
Set oWord = Nothing
Set Session = Nothing
Set currentExplorer = Nothing
Set obj = Nothing
Set Selection = Nothing
End Sub
Как запустить макрос, когда я выбираю новое сообщение, и как многократно запускать его при вводе нового получателя / получателей и добавлении персонализированного приветствия в теле сообщения?