在 Access 中处理 Outlook MailItem 发送事件
Posted
技术标签:
【中文标题】在 Access 中处理 Outlook MailItem 发送事件【英文标题】:Handle Outlook MailItem Send Event in Access 【发布时间】:2014-02-24 20:06:36 【问题描述】:我正在尝试寻找一种方法来从 Access 中捕获 Outlook 中的 MailItem.Send
事件。我创建了一个类来设置对象并且工作正常,但事件处理程序似乎没有做任何事情。
这是我创建的类(命名为OutlookHandler
):
Public WithEvents app As Outlook.Application
Public WithEvents msg As Outlook.MailItem
Private Sub Class_Initialize()
Set app = CreateObject("Outlook.Application")
Set msg = app.CreateItem(olMailItem)
End Sub
Private Sub msg_Send(Cancel As Boolean)
MsgBox "Message Sent!"
End Sub
这是我创建该类实例的函数:
Public Function test()
Dim ol As New OutlookHandler
With ol.msg
.To = "mike@anywhere.com"
.Subject = "outlook event test"
.Display
End With
End Function
当我运行test
时,电子邮件会创建并显示。当我在电子邮件中点击发送时,电子邮件发送但消息框永远不会创建。我错过了什么?
【问题讨论】:
【参考方案1】:您需要通过这种方式公开您的ol variable
:
Dim ol As OutlookHandler
Public Function test()
'Dim ol As New OutlookHandler
Set ol = New OutlookHandler
With ol.msg
.To = "mike@anywhere.com"
.Subject = "outlook event test"
.Display
End With
End Function
【讨论】:
我认为ol variable
实际上不必公开。调暗后确实需要将其设置为新实例,但您可以在测试函数中调暗它
@HelloW - 如果你在 Dim ol
内 test
那么它不是全局的,一旦 test
完成它就会超出范围。一旦超出范围,就无法响应任何事件。
@TimWilliams 感谢您的解释。我没有看到那个细节。以上是关于在 Access 中处理 Outlook MailItem 发送事件的主要内容,如果未能解决你的问题,请参考以下文章
NodeJS Mail listener2 正在将电子邮件签名图像作为附件下载到 Outlook 中,如何阻止它?
从 Access 中的 VBA 调用时 Outlook.exe 进程未结束
text Configuracion Correo gmail electronico email mail outlook