Outlook Application_NewMailEx 无法在启动时运行
Outlook Application_NewMailEx not working on startup
我正在使用 Application_NewMailEx
来处理收到的所有电子邮件。
它适用于在 Outlook 打开时收到的电子邮件。
但是在启动时,Application_NewMailEx
不会被收到的电子邮件调用。
我尝试使用 Application_Startup
但它在收到电子邮件之前被调用 ==> 不起作用。
没有application.ontime延迟启动宏...
Application_NewMail
也一样。
如何做到?
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
INIT_FOLD
TreatMsg Application.GetNamespace("MAPI").GetItemFromID(EntryIDCollection)
End Sub
NewMailEx 事件将仅针对在您的代码为 运行 时收到的邮件触发。在此之前,您的(Exchange?)邮箱中收到的电子邮件不会触发。
您可以在启动时处理收件箱中的未读电子邮件(Items.Restrict
或 Items.Find/FindNext
)假设新的未处理邮件仍未读或(在缓存模式的情况下)使用 Items.ItemAdd
收件箱文件夹上的事件 - 当您的 OST 文件与远程邮箱同步时,它将触发。
Items.ItemAdd 和 NewMailEx 在收到超过 8 个邮件时不起作用。Microsoft 不保证它会自行触发此事件。
这是一个示例,说明如何设置应用程序启动并在 MailItem
添加到收件箱时触发您的 vba
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim olNs As Outlook.NameSpace
Dim Inbox As Outlook.MAPIFolder
Set olNs = Application.GetNamespace("MAPI")
Set Inbox = olNs.GetDefaultFolder(olFolderInbox)
Set Items = Inbox.Items
End Sub
Private Sub Items_ItemAdd(ByVal Item As Object)
If TypeOf Item Is Outlook.MailItem Then
Example Item ' call sub
End If
End Sub
Public Sub Example(ByVal Item As Object)
Debug.Print Item.Subject ' Immediate Window
End Sub
Application.Startup Event (Outlook) and Items.ItemAdd Event (Outlook)
Items.ItemAdd Event (Outlook) Occurs when one or more items are added to the specified collection. This event does not run when a large number of items are added to the folder at once. This event is not available in Microsoft Visual Basic Scripting Edition (VBScript).
Application.Startup Event (Outlook) Occurs when Microsoft Outlook is starting, but after all add-in programs have been loaded.
我正在使用 Application_NewMailEx
来处理收到的所有电子邮件。
它适用于在 Outlook 打开时收到的电子邮件。
但是在启动时,Application_NewMailEx
不会被收到的电子邮件调用。
我尝试使用 Application_Startup
但它在收到电子邮件之前被调用 ==> 不起作用。
没有application.ontime延迟启动宏...
Application_NewMail
也一样。
如何做到?
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
INIT_FOLD
TreatMsg Application.GetNamespace("MAPI").GetItemFromID(EntryIDCollection)
End Sub
NewMailEx 事件将仅针对在您的代码为 运行 时收到的邮件触发。在此之前,您的(Exchange?)邮箱中收到的电子邮件不会触发。
您可以在启动时处理收件箱中的未读电子邮件(Items.Restrict
或 Items.Find/FindNext
)假设新的未处理邮件仍未读或(在缓存模式的情况下)使用 Items.ItemAdd
收件箱文件夹上的事件 - 当您的 OST 文件与远程邮箱同步时,它将触发。
Items.ItemAdd 和 NewMailEx 在收到超过 8 个邮件时不起作用。Microsoft 不保证它会自行触发此事件。
这是一个示例,说明如何设置应用程序启动并在 MailItem
添加到收件箱时触发您的 vba
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim olNs As Outlook.NameSpace
Dim Inbox As Outlook.MAPIFolder
Set olNs = Application.GetNamespace("MAPI")
Set Inbox = olNs.GetDefaultFolder(olFolderInbox)
Set Items = Inbox.Items
End Sub
Private Sub Items_ItemAdd(ByVal Item As Object)
If TypeOf Item Is Outlook.MailItem Then
Example Item ' call sub
End If
End Sub
Public Sub Example(ByVal Item As Object)
Debug.Print Item.Subject ' Immediate Window
End Sub
Application.Startup Event (Outlook) and Items.ItemAdd Event (Outlook)
Items.ItemAdd Event (Outlook) Occurs when one or more items are added to the specified collection. This event does not run when a large number of items are added to the folder at once. This event is not available in Microsoft Visual Basic Scripting Edition (VBScript).
Application.Startup Event (Outlook) Occurs when Microsoft Outlook is starting, but after all add-in programs have been loaded.