如何访问Flag完成日期?

时间:2012-04-19 18:49:57

标签: vba outlook outlook-vba

我通过选择“跟进 - 标记完成选项”移动我的电子邮件到另一个文件夹。 现在我想编写一个程序,通过比较Flag完成日期和今天的日期来检查我今天完成的多封电子邮件。

但我无法找到如何访问Flag完成日期。

你能帮忙吗?

谢谢, 阿洛克

2 个答案:

答案 0 :(得分:4)

该属性是Outlook.MailItem.TaskCompletedDate。尝试类似:

Sub GetCompletedToday()
Dim olNameSpace As Outlook.NameSpace
Dim olFolder As Outlook.Folder
Dim olMailItem As Outlook.MailItem
Dim CompletedTodayCount As Long

Set olNameSpace = Application.GetNamespace("MAPI")
Set olFolder = olNameSpace.Folders(1).Folders("tester")

For Each olMailItem In olFolder.Items
    If olMailItem.TaskCompletedDate = Date Then
        CompletedTodayCount = CompletedTodayCount + 1
    End If
Next olMailItem
Debug.Print CompletedTodayCount
End Sub

答案 1 :(得分:0)

您可以使用expression.FlagStatus

访问这些标记

请参阅此链接

主题:FlagStatus属性

链接http://msdn.microsoft.com/en-us/library/aa212013%28v=office.11%29.aspx

例如,这将为您提供所有选定电子邮件的状态

展望VBA代码

Option Explicit

Sub Sample()
    Dim Messages As Selection
    Dim Msg As MailItem
    Dim NamSpace As NameSpace

    Set NamSpace = Application.GetNamespace("MAPI")
    Set Messages = ActiveExplorer.Selection

    If Messages.Count = 0 Then Exit Sub

    For Each Msg In Messages
        Debug.Print Msg.FlagStatus
    Next
End Sub

对于No flags的邮件,它会为您提供0

对于Mark Completed,它会为您提供1

对于Other flags,它会为您提供2

因此,您实际上可以使用If语句来检查.FlagStatus属性和邮件日期,以达到您想要的效果。

HTH