Чтобы получить доступ к списку недавних файлов в VBA, используйте
Sub test()
Dim objAllRecentFiles As Object
Set objAllRecentFiles = Application.recentfiles
End Sub
Я не верю, что существует другой способ, кроме использования реестра для определения, закреплены ли последние файлы или нет.В приведенном ниже примере вы можете просмотреть все последние файлы, определить те, которые не были закреплены, и изменить реестр, чтобы сделать их закрепленными.Закомментированный способ удалить
Sub test2()
Dim objAllRecentFiles As Object
Dim WSHShell, RegKey, rKeyWord
Set WSHShell = CreateObject("WScript.Shell")
Set objAllRecentFiles = Application.recentfiles
RegKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\File MRU\"
For Each rFile In objAllRecentFiles
rKeyWord = WSHShell.RegRead(RegKey & "Item " & rFile.Index)
If InStr(1, rKeyWord, "[F00000000]") Then
'Delete registry
'rFile.Delete
'Change registry setting to make recent file pinned
strPinned = Replace(rKeyWord, "[F00000000]", "[F00000001]")
WSHShell.Regwrite (RegKey & "Item " & rFile.Index), strPinned, "REG_SZ"
End If
Next rFile
End Sub