我想回复收件箱中最新(最上面)的电子邮件。
以下代码默认为当前选定的电子邮件:
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
但它需要默认为我收件箱中的顶部电子邮件,而不是当前选择的电子邮件
顶部电子邮件取决于 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 定义以呈现新视图的设置。