Я не совсем уверен, есть ли способ определения метода, с помощью которого был отправлен предмет, или нет - однако, по крайней мере, есть обходной путь, который даст вам тот же эффект.Для этого вам потребуется создать логическую переменную в верхней части вашего модуля, в этом случае мы используем isVBA
.
Внутри обработчика событий вы добавите оператор If Not isVBA
- это будет True
всякий раз, когда вы вручную отправляете элемент, физически нажимая вашу кнопку.
Однако в процедуре, использующей метод MailItem.Send
, вы добавите isVBA = True
в любое время до отправки- который сообщит вашему обработчику событий, что это не «ручная» отправка.
Вот визуальное представление:
Private isVBA As Boolean
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
If Not isVBA Then
Rem: Do what you need to do with a MANUAL send
End If
End Sub
Sub myVBASendMethod()
' Setting this to true will tell the event that you're using MailItem.Send
isVBA = True
' Event Triggered using MailItem.Send
' Reset this back to false
isVBA = False
End Sub