Rule that runs macro when an email is opened

别等时光非礼了梦想. 提交于 2019-12-30 09:55:16

问题


I have created a macro, that does certain things, to an opened mail. I would like to create a rule, that does it automatically, when I open the mail.

I don't want this rule to run all time, just when I open a mail, I don't want to force this rule on each mail I receive.


回答1:


Following @ZZA comments,

try this code:

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

Paste code in ThisOutlookSession

EDIT

To avoid 'Your code triggering the event we need an event disabler:

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


来源:https://stackoverflow.com/questions/21727768/rule-that-runs-macro-when-an-email-is-opened

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!