如何在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
提交
取消
