0

我正在尝试将侦听器添加到我的主收件箱和另一个名为“AssignNumber”的文件夹中。当消息进入我的主收件箱时,我编写了 MACRO,它会监听新的邮件项,然后对该项目进行处理。另一方面,对于我的 AssignNumber 文件夹,我希望能够将电子邮件拖到该文件夹​​中,并且一旦将它们放入该文件夹中,该文件夹就会监听它们,然后执行一些我不会进入的其他操作。我的问题是我所有用于侦听进入主收件箱的邮件的代码都是在 ThisOutlookSession 中编写的,我不知道在哪里添加侦听 AssignNumber 文件夹的代码。这是我在 ThisOutlookSession 中的代码:

    Private WithEvents Items As Outlook.Items

    Private Sub Application_Startup()
       Dim olApp As Outlook.Application
       Dim objNS As Outlook.NameSpace
       Set olApp = Outlook.Application
       Set objNS = olApp.GetNamespace("MAPI")
       ' default local Inbox
       Set Items = objNS.GetDefaultFolder(olFolderInbox).Items
    End Sub

    Private Sub Items_ItemAdd(ByVal item As Object)
    'do Stuff to mailitem
    End Sub

我不知道在哪里/如何添加类似的代码来监听我的 AssignNumber 文件夹中拖放到其中的项目。有人可以帮忙吗??太感谢了。

4

1 回答 1

5

您可以为多个文件夹创建多个侦听器,如下所示:

Private WithEvents deletedItems As Outlook.Items
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 deletedItems = objNS.GetDefaultFolder(olFolderDeletedItems).Items
    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

您可以根据需要对任意数量的文件夹执行此操作,我在这里只使用了两个,但我自己的 Outlook 中有近 10 个。

然后,您可以将ItemAdd方法分配给他们每个人,例如:

Private Sub deletedItems_ItemAdd(ByVal item As Object)
'do Stuff to mailitem
End Sub
Private Sub mainInboxItems_ItemAdd(ByVal item As Object)
'do Stuff to mailitem
End Sub

所有这些代码都可以放在 ThisOutlookSession 中。

于 2013-08-28T21:06:38.673 回答