0

メインの受信トレイと「AssignNumber」という名前の別のフォルダーにリスナーを追加しようとしています。メッセージがメインの受信トレイに届くと、新しいメールアイテムが届くのをリッスンし、そのアイテムに処理を行う MACRO を作成しました。一方、私の AssignNumber フォルダーでは、メールをそのフォルダーにドラッグできるようにしたいと考えています。メールがそのフォルダーにドロップされると、そのフォルダーはメールをリッスンし、ここでは触れない他のアクションを実行します。私の問題は、MAIN INBOX に着信するメールをリッスンするコードがすべて 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

必要な数のフォルダーに対してこれを行うことができます。ここでは 2 つしか使用していませんが、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 に答える