3

VBA を使用して Excel リボンの最近のドキュメント履歴を削除する方法。

以下のコードを使用していますが、うまくいかないようです。

Sub Button1_Click()
    For i = 1 To Application.RecentFiles.Count - 1
        Application.RecentFiles(i).Delete
    Next i
End Sub

ありがとう ...

4

3 に答える 3

3

最近使用したファイルのリストをクリアし、ユーザーの設定を台無しにしないために、次のコードが機能します。

originalSetting = Application.RecentFiles.Maximum

Application.RecentFiles.Maximum = 0

Application.RecentFiles.Maximum = originalSetting

これにより、最近のファイルが削除され、最近のファイルの最大数がユーザーが最初に持っていたものにリセットされます。

それらを個別に削除したいだけの場合は、逆の順序でそれらをステップ実行して、作業を完了することができます。

 Dim i As Integer

For i = Application.RecentFiles.Count To 1 Step -1
    Application.RecentFiles.Item(i).Delete
Next

最近のファイルコレクションからエントリの1つを削除するとすぐに、残りのファイルのすべてのインデックスが変更されるため、コレクションの一番下から上に実行する必要があります。このように、ループを通過するたびに、コレクションの最後のアイテムを削除します。

また、このコレクションはBase0ではなくBase1であるため、コレクションの最後の項目は.RecentFiles.Count-1ではなくApplication.RecentFiles.Countです。

私はExcelのこれらの小さな矛盾がすべて大好きです..:)

于 2010-01-22T17:51:19.773 に答える
2

最近使用したファイルの一覧を非表示にする直接的なメカニズムはありません。ただし、Application.RecentFiles.Maximumをゼロ (0) に設定することで実行できます。

詳細については、 Ron de Bruin による「 Excel 2007 のリボンを変更する」を参照し、「独裁者の例と MRU ('最近使用した') ファイル リストを非表示にする」というタイトルのセクションまでスクロールします。コードは Jim Rech から提供されています。

これは手動で行うこともできます。参照: Office 2007 (Word、Excel、PowerPoint) で最近使用したドキュメント リストを消去および削除する方法.

-- マイク

于 2010-01-22T14:58:42.580 に答える
0

最近のファイルのリストからアクティブなワークブックをクリアするには、次を使用します。

Sub DeleteFileFromRecentFiles()
    Dim i As Integer
    For Each RecentFile In Application.RecentFiles
        If ActiveWorkbook.Name = RecentFile.Name Then
            i = i + 1
            Application.RecentFiles.Item(i).Delete
        End If
    Next
End Sub

敬具、リチャード

于 2013-02-10T21:32:41.763 に答える