0

Win 7,Outlook 2013 我使用 VBA 代码对到达我的收件箱的一些文件执行操作。但是,我必须单击/运行按钮才能运行此宏。

有没有一种方法可以在电子邮件到达时自动运行此代码?

我已尝试使用 Outlook 规则来运行脚本,但未成功。

我试过这个,但这只有在我运行宏时才有效

Private Sub Application_NewMail()
    Call GetAttachments_From_Inbox (My Macro)
End Sub
4

1 回答 1

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 中。

于 2013-09-04T17:18:34.150 回答