Это вполне возможно при использовании события _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
Надеюсь, это поможет ...