Win 7,Outlook 2013 我使用 VBA 代码对到达我的收件箱的一些文件执行操作。但是,我必须单击/运行按钮才能运行此宏。
有没有一种方法可以在电子邮件到达时自动运行此代码?
我已尝试使用 Outlook 规则来运行脚本,但未成功。
我试过这个,但这只有在我运行宏时才有效
Private Sub Application_NewMail()
Call GetAttachments_From_Inbox (My Macro)
End Sub
Win 7,Outlook 2013 我使用 VBA 代码对到达我的收件箱的一些文件执行操作。但是,我必须单击/运行按钮才能运行此宏。
有没有一种方法可以在电子邮件到达时自动运行此代码?
我已尝试使用 Outlook 规则来运行脚本,但未成功。
我试过这个,但这只有在我运行宏时才有效
Private Sub Application_NewMail()
Call GetAttachments_From_Inbox (My Macro)
End Sub
我专门使用我作为规则运行的脚本,应用于所有消息。这使您可以轻松、清晰地访问您收到的邮件。WithEvents
由于您想在收件箱上设置的每条消息上运行它可能是您最好的选择。
例如:
您可以为 Outlook 文件夹创建侦听器,如下所示:
Private WithEvents mainInboxItems As Outlook.Items
Public Sub Application_Startup()
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set mainInboxItems = objNS.Folders("whatever your main mailbox is called").Folders("AssignNumber").Items
'assumes your "AssignNumber" folder is a subfolder of the main inbox
'otherwise you can nest Folders("myArchive").Folders("AssignNumber).items etc
End Sub
您也可以根据需要对任意数量的文件夹执行此操作。
然后,您可以将ItemAdd
方法分配给他们每个人,例如:
Private Sub mainInboxItems_ItemAdd(ByVal item As Object)
'do Stuff to mailitem
Call GetAttachments_From_Inbox (item)
End Sub
所有这些代码都可以放在 ThisOutlookSession 中。