我们使用共享的Outlook邮箱,每天接收1000封电子邮件,是否有任何宏可以向我们提供在什么时候回复的项目以及未回复的项目的详细信息。基本上,我们需要跟踪回复特定收件箱项目所花费的时间。
没有宏,但是您可以编写自己的宏。 Outlook->工具->宏-> Visual Basic编辑器。
在VBA中,您必须启动Outlook.MAPIFolder对象并将其连接到所需的邮箱。
Dim f As MAPIFolder
Dim olns As Outlook.NameSpace
Set olns = Outlook.GetNamespace("MAPI")
Set f = olns.Folders("Mailbox - Name, Name")
Set f = f.Folders("Inbox")
如果正在检查邮箱中的子文件夹,则需要这样做:
Set f = f.Folders("Name of the subfolder")
然后您需要遍历所有项目。
Dim m As MailItem
Dim i As Long
i = 1
Do Until i > f.Items.Count
If f.Items(i).Class = olMail Then
Set m = f.Items(i)
End If
' yada yada
i = i + 1
DoEvents
Loop
如何检测已回复的内容将取决于您所使用的Outlook版本。对于Outlook 2007,可以使用Outlook.PropertyAccessor。对于早期版本,您可以使用第三方加载项,例如Redemption,也可以求助于比较m.LastModificationTime和m.CreationTime。
例如:
If m.LastModificationTime - m.CreationTime < 0.1 Then
n = n + 1
Debug.Print m.subject
End If
时间总是会有一点点偏差,所以您不能使用“ =”,必须检查差异是否真的很小。
这可能会提取转发的电子邮件以及回复的电子邮件;考虑这是否是您想要的。
如果仍然如此,我建议使用Excel的Power Query跟踪对话。基本上,您只需要按Conversation ID
汇总项目列表,然后将每个对话的第一项和第二项取Received Time
。确保按Received Time
或Conversation Index
对嵌套表进行排序。