2010-01-22 11 views

Répondre

2

Il n'y a pas de mécanisme direct pour cacher le plus récemment utilisé liste des fichiers. Cela peut toutefois être fait en réglant le Application.RecentFiles.Maximum sur zéro (0). Pour une discussion détaillée, voir Change the Ribbon in Excel 2007 par Ron de Bruin, et faites défiler jusqu'à la section intitulée "Dictator examples et Hide the MRU ('Most Recently Used') liste de fichiers", avec le code fourni par Jim Rech.

Cela peut également être fait manuellement. Voir: How to Clear and Delete Recent Documents List in Office 2007 (Word, Excel, PowerPoint).

- Mike

3

Pour effacer la liste des fichiers récemment utilisés, et non mess avec les paramètres de l'utilisateur, le code suivant fonctionnera:

originalSetting = Application.RecentFiles.Maximum 

Application.RecentFiles.Maximum = 0 

Application.RecentFiles.Maximum = originalSetting 

Cela supprimera les fichiers récents, puis réinitialiser le nombre maximum de fichiers récents retournés à tout ce que l'utilisateur avait initialement.

Si vous voulez simplement les supprimer individuellement, vous pouvez les parcourir dans l'ordre inverse pour faire le travail.

Dim i As Integer 

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

Vous devez exécuter à partir du bas de la place de la collecte, parce que dès que vous supprimez l'une des entrées de la collection RecentFiles, tous les index des fichiers restants changent. De cette façon, chaque fois que vous parcourez la boucle, vous supprimez le dernier élément de la collection.

Et aussi, puisque cette collection est Base 1 au lieu de Base 0, le dernier élément de la collection est Application.RecentFiles.Count plutôt que .RecentFiles.Count-1.

J'adore toutes ces petites incohérences dans Excel .. :)

+0

1 collections de base/arrays: En fait, je ne pense pas que cela a quelque chose à voir avec Excel, c'est une caractéristique de la famille de langages Visual Basic (changé quand VB est passé à .NET) –

0

Pour effacer la ActiveWorkbook de la liste des RecentFiles utiliser:

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 

Sincèrement, Richard