如何在Outlook中收到新郵件后觸發宏運行?我正在編寫一個宏,它根據從Nagios服務器收到的警報作為電子郵件在數據庫上創建票證。但是,我不能讓宏在檢查郵件時在無限循環中運行,因為它太資源太重而使我的桌面掛起。我需要找到一種方法只在收到新郵件時觸發宏。我在MSDN網站上查找了NewMail事件的內容,但我找不到任何連貫的內容。任何人都可以向我展示一些示例代碼,以顯示如何從新郵件事件中觸發宏嗎?
2 回答

梵蒂岡之花
TA貢獻1900條經驗 獲得超5個贊
此代碼將向默認的本地收件箱添加事件偵聽器,然后對傳入的電子郵件執行某些操作。您需要在下面的代碼中添加該操作。
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 SubPrivate Sub Items_ItemAdd(ByVal item As Object) On Error Goto ErrorHandler Dim Msg As Outlook.MailItem If TypeName(item) = "MailItem" Then Set Msg = item ' ****************** ' do something here ' ****************** End IfProgramExit: Exit SubErrorHandler: MsgBox Err.Number & " - " & Err.Description Resume ProgramExit End Sub
粘貼ThisOutlookSession
模塊中的代碼后,必須重新啟動Outlook。

繁星coding
TA貢獻1797條經驗 獲得超4個贊
嘗試這樣的內容ThisOutlookSession
:
Private Sub Application_NewMail() Call Your_main_macroEnd Sub
當我收到一封電子郵件并打開該應用程序事件時,我的outlook vba就被解雇了。
編輯:我剛剛測試了一個hello world msg框,它在application_newmail
收到電子郵件后在活動中被調用后運行。
添加回答
舉報
0/150
提交
取消