我有一个几乎失明的朋友。他希望他的电子邮件按收到日期的降序排序。他不断地点击其他字段名称,然后再找不到如何按接收日期排序。他有屏幕阅读软件,但似乎没有阅读列标题。
我想在工具栏上创建一个按钮,通过调用宏或任何其他方式按接收日期对电子邮件进行排序。屏幕阅读软件可以帮助他找到按钮 - 但似乎很难让这个按钮按需工作。
我已尝试使用Items.sort
,但这似乎不会影响显示视图。
我尝试设置一个名为" Inbox sorted"所以我可以使用VBA切换到这个视图,但命名视图的问题是当我点击另一列进行排序时,例如"尺寸",这似乎永久性地改变了视图,因此它现在按照大小按召回时排序 - 所以当我的宏调用此视图时,它按大小而不是按日期排序为需要。工具栏上有一个重置按钮,但它显示为灰色。
我发现有一些与视图相关的XML。我可以使用以下方式阅读:
Debug.Print Application.ActiveExplorer.CurrentFolder.CurrentView.XML
但我不知道如何安全地编辑它。
有什么想法?它不必由宏来完成;我想要的是让他更容易按日期排序他的收件箱,并且我可以通过任何方式实现这一目标。
编辑:我写的更改视图的代码是:
Sub ChangeViewToInboxSorted()
Dim myOlExp As Outlook.Explorer
Set myOlExp = Application.ActiveExplorer
myOlExp.CurrentView = "Inbox Sorted"
End Sub
这并不能完成这项工作,因为正如我所提到的,在视图处于活动状态的任何时候单击列标题会永久改变视图的定义。
答案 0 :(得分:0)
Items.Sort
和视图是不同的东西。 Sort方法仅在内存中执行作业,而不是UI。
要获得所需的已排序项的XML标记,我建议您在Outlook中手动执行所需的更改,然后使用代码中的XML属性检查结果。因此,你会发现它应该如何。