使用 VBA 清除 Outlook 2016 中的 IMAP 文件夹

Purge an IMAP folder in Outlook 2016 using VBA

在 Outlook 2016 中,我连接了一个 IMAP 文件夹。 Outlook 配置为将 IMAP 文件夹中的项目标记为已删除。这是必要的,因为我想处理那些单独标记为删除的项目。在我的宏完成后,IMAP 文件夹应该会自动清除。

在 Outlook 中,功能区“文件夹”带有组“清除”。在菜单“删除”中有一个菜单项可以清除当前文件夹。我找不到从 VBA 宏执行函数的方法。

对于 Outlook 2010,有以下解决方案: http://www.vboffice.net/en/developers/purge-deleted-imap-messages/

在 Outlook 2016 中,findControl 方法未找到所需的控件。

有没有办法清除该文件夹?

最好的解决方案是某种 API 函数。

第二个最好的方法是在功能区控件上模拟单击事件。 “CommandBars”似乎包含某种上下文菜单,但不包含功能区控件。

是否可以定义带有标准控件的自定义命令栏?控件 ID 仍然是“12771”。

我非常简要地查看了 UI 自动化工具包,但没有找到有关如何访问特定应用程序功能区的好示例。

或者:我可以访问快速访问工具栏的控件吗?将正确的清除文件夹控件添加到快速访问工具栏将依赖于用户在正确的时刻单击该按钮。

对于可以添加到功能区或 QAT 的按钮,将鼠标悬停在命令上时可以在文本末尾看到 idMso。

Sub PurgeFolder_Button_idMso()

' For buttons you can add to a ribbon or the QAT,
'  the idMso can be seen at the end of the text when hovering over the command.
ActiveExplorer.CommandBars.ExecuteMso ("PurgeFolder")

End Sub