全部回复收件箱中最近(顶部)的电子邮件

问题描述 投票:0回答:1

我想回复收件箱中最新(最上面)的电子邮件。

以下代码默认为当前选定的电子邮件:

Sub my_test(Item As Outlook.MailItem)

Dim objItem As Object

Dim mail As MailItem
Dim replyall As MailItem

Dim templateItem As MailItem

For Each objItem In ActiveExplorer.Selection

    If objItem.Class = olMail Then
    
        Set mail = objItem
        Set replyall = mail.replyall
                
        Set templateItem = CreateItemFromTemplate("Template")
        
        With replyall
            .HTMLBody = templateItem.HTMLBody & .HTMLBody
            .Display
        End With
        
    End If
    
Next

End Sub
vba sorting outlook
1个回答
0
投票

但它需要默认为我收件箱中的顶部电子邮件,而不是当前选择的电子邮件

顶部电子邮件取决于 Outlook 中视图或文件夹所使用的排序顺序。通常,项目按 RecievedTime 属性排序,该属性返回一个日期,指示接收项目的日期和时间。因此,您可以使用

Sort
方法对 Items 集合进行排序,并获取第一个或最后一个,这将是视图中的顶部项目。

Sub SortByRecievedDate() 
 Dim myNameSpace As Outlook.NameSpace 
 Dim myFolder As Outlook.Folder 
 Dim myItem As Object
 Dim myItems As Outlook.Items 
 
 Set myNameSpace = Application.GetNamespace("MAPI") 
 Set myFolder = myNameSpace.GetDefaultFolder(olFolderTasks) 
 Set myItems = myFolder.Items 
 
 myItems.Sort "[RecievedTime]", False 
 
 For Each myItem In myItems 
   MsgBox myItem.Subject & "-- " & myItem.DueDate 
 Next myItem 
End Sub

但理想情况下,您需要从 Outlook 中的 View 对象获取排序顺序。

View
对象允许您创建可自定义的视图,以便您更好地排序、分组并最终查看所有不同类型的数据。有多种不同的视图类型可以提供创建和维护重要数据所需的灵活性。您可能对 View.Filter 属性感兴趣,该属性返回或设置表示视图过滤器的字符串值。 XML 定义通过使用一系列与视图本身的各种属性相对应的标签和关键字来描述视图类型。创建视图时,将解析 XML 定义以呈现新视图的设置。

© www.soinside.com 2019 - 2024. All rights reserved.