2
我已經創建了一個可以打開郵件的宏。我想創建一個規則,當我打開郵件時自動執行該規則。打開電子郵件時運行宏的規則
我不希望這條規則全部運行,只是當我打開一封郵件時,我不希望在收到的每封郵件上強制執行此規則。
我已經創建了一個可以打開郵件的宏。我想創建一個規則,當我打開郵件時自動執行該規則。打開電子郵件時運行宏的規則
我不希望這條規則全部運行,只是當我打開一封郵件時,我不希望在收到的每封郵件上強制執行此規則。
繼@ZZA意見,
試試這個代碼:
Public WithEvents myItem As Outlook.MailItem
Private Sub Application_ItemLoad(ByVal Item As Object)
If Item.Class = olMail Then
Set myItem = Item
End If
End Sub
Private Sub myItem_Open(Cancel As Boolean)
'Your code
End Sub
代碼粘貼在ThisOutlookSession
編輯
爲了避免'Your code
觸發,我們需要一個事件事件禁用者:
Public WithEvents myItem As Outlook.MailItem
Public EventsDisable as Boolean
Private Sub Application_ItemLoad(ByVal Item As Object)
If EventsDisable = True Then Exit Sub
If Item.Class = olMail Then
Set myItem = Item
End If
End Sub
Private Sub myItem_Open(Cancel As Boolean)
EventsDisable=True
'Your code
EventsDisable=False
End Sub
嗨,我試圖通過只添加:msgbox「測試」來測試它,但它不工作,我不能運行這個宏,因爲它會帶你到屏幕上,在哪裏你必須選擇運行哪個宏。 – ZZA
您是否將代碼粘貼到'ThisOutlookSession'對象中? – hstay
是的,我做了,但我必須重新啓動Outlook,現在它可以工作,但它不會做我需要做的事情。當我選擇郵件時,彈出消息框,而不是打開郵件時。 – ZZA