Win 7,Outlook 2013我使用VBA代码对到达收件箱的某些文件执行操作。但是,我必须单击/运行按钮才能运行此宏。
有没有办法在电子邮件到达时自动运行此代码?
我尝试过运行脚本的Outlook规则,但没有成功。
我试过这个,但这只有在我运行宏
时才有效Private Sub Application_NewMail()
Call GetAttachments_From_Inbox (My Macro)
End Sub
答案 0 :(得分:0)
我特意使用我作为规则运行的脚本,应用于所有消息。这使您可以轻松,清晰地访问您收到的邮件。由于您希望在收件箱中设置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。