VBA展望新邮件

时间:2011-05-21 21:05:05

标签: vba outlook outlook-vba

每次新邮件到达outlook时,我都会尝试运行一个函数。我一直在做一些搜索,但每次收到电子邮件时我都无法找到解雇代码的方法。我可以使用新的邮件活动吗?

我为它添加了一个简单的MsgBox,以便能够查看事件是否正在触发,但它似乎没有起作用。我将此代码放在ThisOutlookSession模块中。任何顾客?这是我的代码。

   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

2 个答案:

答案 0 :(得分:1)

尝试放置:

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

在“ThisOutlookSession”中

答案 1 :(得分:0)

MSDN上有一个很好的示例,展示了当新邮件到达时如何显示收件箱(使用Outlook.Explorers)。您可以很容易地为自己的程序调整它。