У меня есть программа, которая вызывает шаблон Outlook.
Моя программа получает необходимые данные для заполнения этого шаблона Outlook. Отображается почта Outlook.
MsgBox появляется перед тем, как пользователь отправляет письмо, сообщая, что электронное письмо отправлено.
Пользователь может изменить это сообщение перед отправкой.
Есть ли способ, если пользователь закрывает почту Outlook перед отправкой, Excel VBA может уведомить пользователя о том, что электронное письмо не было отправлено, вместо того, чтобы запросить его отправку?
' With the clients personal Outlook Template...
With outlookAttachmentBackup
'...the email template inserts the emailValue from the ExcelDB Excel file
outlookAttachmentBackup.To = emailValue
outlookAttachmentBackup.CC = CCRecipient
'...includes the subjectLine variable
outlookAttachmentBackup.Subject = subjectLine
'...then attaches the copied workbook
outlookAttachmentBackup.Attachments.Add copyWorkbook.FullName
copyWorkbook.Save '...it then saves the copy workbook
'...IF WANTING. THIS WILL ALLOW THE USER TO REVIEW THE EMAIL BEFORE IT SENDS
outlookAttachmentBackup.Display
'...it then closes the copyWorkbook
copyWorkbook.Close
' button is then set back to be visible after the file is sent.
thisWorksheet.Shapes("btnSend").Visible = True
' Message notifying user that the file has been sent
MsgBox ("Your file has been sent."), vbInformation
'...The Outlook email template is then sent off!
'outlookAttachmentBackup.Send
End With
В настоящее время у меня есть функция .Send
, закомментированная, поэтому после того, как все переменные получены, Outlook отображает почту (.Display
) и, по сути, MsgBox является просто жестким кодом.
Есть ли способ, которым после того, как почта Outlook будет отображена и пользователь решит закрыть ее, а не нажать кнопку «Отправить», программа VBA обнаружит это и затем предложит пользователю «Не отправлено»?