2011-05-21 104 views
0

我試圖運行一個函數,每次新郵件到達Outlook。我一直在做一些搜索,但每次收到電子郵件時我都找不到我的代碼。是否有可以使用的新郵件活動?VBA outlook新郵件

我添加了一個簡單的MsgBox它能夠看到事件是否正在觸發,但它似乎沒有工作。我將這段代碼放在ThisOutlookSession模塊中。任何adivice?這是我的代碼。

Public WithEvents myOlApp As Outlook.Application 

    Sub Initialize_handler() 
     Set myOlApp = CreateObject("Outlook.Application") 
    End Sub 

    Private Sub myOlApp_NewMail() 
     Dim myExplorers As Outlook.Explorers 
     Dim myFolder As Outlook.MAPIFolder 
     Dim x As Integer 
     Set myExplorers = myOlApp.Explorers 
     Set myFolder = myOlApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) 
     If myExplorers.Count <> 0 Then 
      For x = 1 To myExplorers.Count 
       On Error GoTo skipif 
       If myExplorers.Item(x).CurrentFolder.Name = "Inbox" Then 
        MsgBox ("Test") 
        myExplorers.Item(x).Display 
        myExplorers.Item(x).Activate 
        Exit Sub 
       End If 
    skipif: 
      Next x 
     End If 
     On Error GoTo 0 
     myFolder.Display 
    End Sub 
+0

當有人已經提供瞭解決您的問題的答案,將其標記通過單擊旁邊的答案的小V作爲接受。通過這種方式,您向任何讀者表明這是解決方案,並且您的問題已得到解決。 – 2011-05-24 17:09:40

回答

1

嘗試把:

 
Private Sub Application_NewMail() 
    MsgBox "New mail" 
End Sub 

在「ThisOutlookSession」

+0

謝謝馬特。這工作在我的工作電腦上,但遺憾的是不在我的家用電腦上...我正在努力開發的電腦。我的觀點顯然存在根深蒂固的問題。這將需要更多的挖掘。 – loveforvdubs 2011-05-23 23:14:09

+0

這很尷尬。這整個過程中,我都在Outlook中禁用了宏。我期待着實際推進這個項目。感謝所有人的幫助! – loveforvdubs 2011-05-24 00:20:15

+0

@loveforvdubs如果Matt的回答幫助你解決它,你應該選擇它作爲答案。 – jonsca 2011-05-24 12:14:10

0

有上MSDN一個很好的例子展示瞭如何當一個新郵件到達時(使用Outlook.Explorers)顯示收件箱。你可以很容易地適應你自己的程序。

+0

@loveforvdubs你應該編輯你的問題,以表明你已經嘗試了什麼,你期望得到什麼結果,以及你得到了什麼結果。 – jonsca 2011-05-21 22:23:07

+0

對不起,我並不想故意提交該評論,請參閱下文 – loveforvdubs 2011-05-21 22:24:59

+0

有沒有辦法在評論中發佈代碼?我一直在嘗試回覆我嘗試使用的代碼,但我一直無法找到在註釋字段中發佈代碼的方法。 – loveforvdubs 2011-05-21 23:19:42