将项目添加到文件夹中的集合时会触发事件。例如,假设您的默认收件箱下面有一个名为“Stuff”的文件夹。此代码将触发每一个邮件移动到一个文件夹时间:
Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
Dim olApp As Outlook.Application
Set olApp = Outlook.Application
Set Items = GetNS(olApp).GetDefaultFolder(olFolderInbox).Folders("Stuff").Items
End Sub
Private Sub Items_ItemAdd(ByVal item As Object)
On Error GoTo ErrorHandler
MsgBox "You moved an item into the 'Stuff' folder."
ProgramExit:
Exit Sub
ErrorHandler:
MsgBox Err.Number & " - " & Err.Description
Resume ProgramExit
End Sub
Function GetNS(ByRef app As Outlook.Application) As Outlook.NameSpace
Set GetNS = app.GetNamespace("MAPI")
End Function
粘贴到这个ThisOutlookSession并重新启动Outlook。每当电子邮件被移动到该文件夹时,您将看到弹出窗口。
是啊,嗯,你使用的物品,但我有4个邮箱(有些是共享箱),我有一个数百万个文件夹(如果你知道是活链接框)。问题似乎是项目列表,或者我可以在选择文件夹时设置列表,我想我的第一个问题不够准确 – forX
没有真正的“项目移动”事件(我很想听否则),你必须通过检查ItemAdd事件来回到它。如果它激发,则将项目添加到引用文件夹的项目集合中。我们简单地假设(因为它不是收件箱)该项目被移动。 – JimmyPena