我在 Windows 7 下使用 VBA 中的自动化(在此示例中为 MS Access 2007,但应该不会有太大变化)以编程方式生成 Office 文档(在我的情况下为 Word 或 Excel 2007)。这工作正常。
由于文档是自动生成的,我不希望它们出现在最近的列表中。对于 Word 中的最近列表,我可以在保存文档时添加“AddToRecentFiles:=False”(参见示例),或者我可以在之后通过“Application.RecentFiles ...”删除条目
我的代码
Set objWord = CreateObject("Word.Application")
Set curDocument = objWord.Documents.Add
curDocument.SaveAs FileName:=Folder + "text.doc", FileFormat:=wdFormatDocument,
AddToRecentFiles:=False
curDocument.Close
问题是我找不到从 Windows 7 禁用最近列表的方法(即,在 Word 任务栏中带有最近项目的跳转列表或资源管理器中上次使用的文件夹和开始菜单中 Word 的最近列表)。
我知道这些列表存储在 %APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations 下,我发现要操作 Jumplist 有“WindowsAPICodePack”(我不能从 VBA 使用,对吗?)。
要添加最近列表中的项目,我可以使用“shell32.dll”库中的旧 API SHAddToRecentDocs,但使用此 API 函数删除不再起作用,因为它似乎只会影响旧“/recent”文件夹中的条目(甚至删除我不打算的所有内容)。Windows 7 任务栏 API 上的演示似乎也只提到了如何添加项目,而不是如何避免这样做或删除特定条目。
我是否遗漏了某些东西,或者没有——在 VBA 中简单且理想地可用——操作(或暂时禁用)Windows 7 录制的方法?
亲切的问候安德烈亚斯