Outlook Tracker用于共享邮箱

时间:2013-03-22 10:19:11

标签: email vba outlook-vba

我们使用共享的Outlook邮箱,我们每天收到1000封电子邮件,是否有任何宏可以向我们提供在什么时间回复的项目和未回复的项目的详细信息。基本上我们需要跟踪回复特定收件箱项目所花费的时间。

2 个答案:

答案 0 :(得分:4)

没有宏,但你可以编写自己的宏。展望 - >工具 - >宏 - > 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

时间总是有点小,所以你不能使用“=”,你必须检查差异是否真的很小。

这可能会收到转发的电子邮件以及回复的电子邮件;考虑这是否是你想要的。

答案 1 :(得分:0)

如果仍然如此,我建议使用Excel的Power Query跟踪对话。基本上,您所需要做的就是按照image/vnd.microsoft.icon汇总项目列表,然后从image/webp中选取每个会话的第一项和第二项。确保按Conversation IDReceived Time对嵌套表进行排序。