0

フォルダーにリスナーを配置して、フォルダーに入るメールアイテムの数を追跡する方法を見つけようとしていますが、正しく機能していません。これは私が持っているものですが、そのフォルダーに複数のメールをドラッグすると、何らかの理由で選択した金額が正しくありません。基本的に、フォルダーでやろうとしているのは、フォルダーにドラッグされたメールアイテムのすべての名前を同じ名前に変更することです。そのため、ドラッグされているアイテムを参照できるようにする必要があります。Selection を使用してこれを行うことができると思っていましたが、よくわかりません。何か案は??ありがとうございました!これが私のコードです:

Private WithEvents MatchTicketNumberItems 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")

  'Specify folders that will have listeners on them
  Set MatchTicketNumberItems = objNS.GetDefaultFolder(olFolderInbox).Parent.Folders("MatchTicketNumber").Items
End Sub

Private Sub MatchTicketNumberItems_ItemAdd(ByVal item As Object)
   Dim selected As Integer
   Dim objSelection As Outlook.Selection
   Set objSelection = Application.ActiveExplorer.Selection
   selected = objSelection.count

   'Do stuff
End Sub
4

2 に答える 2

0

前の回答は質問に対処していますが、MatchTicketNumber フォルダーへの移動を自動化するこの方法を試すことができます。

Private Sub MatchTicketNumberItems_ItemAdd(ByVal item As Object)
   Dim objNS As Outlook.Namespace
   Dim i As Long
   ' Do Stuff
   item.Save    
End Sub


Sub Process_Selection_Multiple_MatchTicketNumber()     
    Dim objNS As Outlook.Namespace
    Dim targetFolder As MAPIFolder
    Dim selectionIndex As Long
    Dim itm As Object

    Set objNS = Application.GetNamespace("MAPI")
    Set targetFolder = objNS.GetDefaultFolder(olFolderInbox).Parent.Folders("MatchTicketNumber")

    For selectionIndex = 1 To ActiveExplorer.Selection.count
        Set itm = ActiveExplorer.Selection(selectionIndex)
       itm.Move targetFolder
    Next
End Sub
于 2013-08-30T17:16:25.577 に答える
0

MAPI イベントは UI のみを目的としており、負荷が高い場合はスキップされる可能性があることに注意してください。

そうは言っても、もっと具体的に言えますか?いくつのアイテムをドラッグし、イベント ハンドラは何回起動しますか?

また、なぜ Explorer.Selection を使用しているのですか? アイテムが直接作成された場合、現在の選択は無関係になります。

于 2013-08-29T20:58:32.533 に答える