VBA Outlook Mail .display, запись, когда / если отправлено вручную

Мой код отображает сообщение с основной темой, телом, вложением. Далее пользователь вручную обновляет и настраивает сообщение и должен его отправить. Я хочу записать, когда (если) письмо отправлено. Это возможно или какие-либо советы?

Моя среда - Office 2007 с макросом, основанным на Excel, который идет в Outlook.

[Отрывок]

Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem

Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon

Set OutMail = OutApp.CreateItem(olMailItem)
With OutMail
    .To = Email                 '.CC = 
    .Subject = Subj
    .BodyFormat = olFormatHTML
    .Body = Msg                 '.HTMLBody = Msg
    If Not FileAttach = vbNullString Then .Attachments.Add (FileAttach) 
    .Display
End With

1 ответ

Решение

Это вполне возможно, используя событие _Send в классе Outlook.MailItem.

Как я его использую, я создаю класс EMail Watcher, поэтому, когда я создаю электронное письмо и выполняю.Display, я затем создаю новый объект EMailWatcher и приказываю ему просматривать это электронное письмо для отправки, а затем отчитываться, когда это происходит.

Вот класс, как я его использую. По сути, я также опционально могу установить BoolRange так, чтобы, если пользователь отправляет электронное письмо, этот диапазон Excel обновлялся с помощью True. Я также могу попросить класс обновить диапазон Excel со временем отправки электронного письма.

Public BoolRange As Range
Public DateRange As Range
Public WithEvents TheMail As Outlook.MailItem


Private Sub TheMail_Send(Cancel As Boolean)
    If Not BoolRange Is Nothing Then
        BoolRange.Value = True
    End If
    If Not DateRange Is Nothing Then
        DateRange.Value = Now()
    End If
End Sub

И вот как я это использую:

With oMail
    .To = addr
    .Subject = "CCAT eVSM Utilities License Code"
    .Body = "Message body"
    .Display
End With
Set CurrWatcher = New EmailWatcher
Set CurrWatcher.BoolRange = Range("G12")
Set CurrWatcher.TheMail = oMail

Надеюсь, это поможет...

Другие вопросы по тегам