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 .. :)
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) –