2017-07-29 55 views
0

我遇到了以下情況。打開和關閉多個任務項時關閉事件不起作用

  • 公開賽執行open事件
  • 打開任務
  • 執行open事件
  • 關閉第一個任務
  • 不執行任何接近事件的第二前景進行了展望任務
  • ! !
  • 關閉
  • 執行
  • close事件的第二個任務

沒有任何人有一個線索這裏發生了什麼? 我做了一些不好的編程嗎?我已將我的代碼放在下面。

預先感謝您。

親切的問候,

Wamor

Public WithEvents objInspectors As Outlook.Inspectors 
Public WithEvents objJournal As Outlook.JournalItem 
Public WithEvents objTask As Outlook.TaskItem 

Dim objOldTask As Outlook.TaskItem 

Private Sub Application_Startup() 
    Set objInspectors = Outlook.Inspectors 
    Set objTask = Nothing 
    Set objJournal = Nothing 
    Set objOldTask = Nothing 
End Sub 

Private Sub objInspectors_NewInspector(ByVal Inspector As Inspector) 
    If TypeOf Inspector.CurrentItem Is TaskItem Then 
     Set objTask = Inspector.CurrentItem 
    End If 
    If TypeOf Inspector.CurrentItem Is JournalItem Then 
     Set objJournal = Inspector.CurrentItem 
    End If 
End Sub 

Private Sub objTask_Open(Cancel As Boolean) 
    MsgBox "TaskItem open event" 
End Sub 

Private Sub objTask_close(Cancel As Boolean) 
    MsgBox "TaskItem close event" 
End Sub 

回答

0

當然 - 打開了多個對象,但只有一個變量來存儲他們參考。

處理類似問題的標準方法是讓包含Inspector和Item(兩個項目 - 您的案例中的TaskItem和JournalItem)作爲變量的包裝類。 TaskOpen和TaskClose事件處理程序將是該包裝類上的方法。 當NewInspector事件觸發時,創建包裝類的實例並填充其屬性。將包裝類添加到全局列表中。 關閉事件觸發時,從列表中刪除包裝類。