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 のプレゼンテーションも、項目を追加する方法についてのみ言及しているように見えますが、それを回避する方法や特定のエントリを削除する方法については言及していません。
Windows 7 が行う記録を操作する (または一時的に無効にする) 方法がありませんか?
よろしくアンドレアス