Hi, ChiJanZen!
Yep, it was the recentfiles.add bit that worked it.
Thanks VERY much for your help. I have a 14:00 meeting at which I needed to
be able to demonstrate this and now I can! :-)))))
Thanks for your help on this and recently - I wish you and your family a
good Christmas and New Year.
Regards
Pete
"chijanzen" wrote:
Peter:
it's 17:58 here
first Run A0_RecentlyUsedFileListStore
and Run RecentlyUsedFileListRestore
Dim RecentFileListArray As Variant
Dim num As Integer
Option Base 1
Sub A0_RecentlyUsedFileListStore()
ReDim RecentFileListArray(Application.RecentFiles.Count) 'As Variant
On Error Resume Next
For NDX = 1 To Application.RecentFiles.Count
RecentFileListArray(NDX) = Application.RecentFiles(NDX).Name
Next
'del RecentFiles
num = Application.RecentFiles.Maximum
Application.RecentFiles.Maximum = 0
End Sub
Sub RecentlyUsedFileListRestore()
Application.RecentFiles.Maximum = num
For NDX = LBound(RecentFileListArray) To UBound(RecentFileListArray)
Application.RecentFiles.Add Name:=RecentFileListArray(NDX)
Next NDX
End Sub
--
天行健,君*以自強不息
地勢坤,君*以厚德載物
http://www.vba.com.tw/plog/
"Peter Rooney" wrote:
Good morning, ChiZanZen!
This works fine - all I now need to do is figure out how to get the values
stored in the array back into the Recently used file list - I'm not sure if
this is even possible, though.
I've used:
Sub RecentlyUsedFileListRestore()
On Error Resume Next
For NDX = LBound(RFLArray) To UBound(RFLArray)
Application.RecentFiles(NDX) = RFLArray(NDX)
Next NDX
Application.DisplayRecentFiles = True
End Sub
but it doesn't appear to work. I'm not sure if the use of
application.displayrecentfiles = true is affecting it and re-resetting the
list.
Anyway, thanks for your help and I'll persevere, though once again, any
thoughts would be greatly appreciated!
Regards
Pete
P.S. it's 09:26 here at the moment - what time is it where you are? I don't
want to keep you from your bed! :-)
"chijanzen" wrote:
Peter:
try,
Dim RecentFileListArray As Variant
Option Base 1
Sub A0_RecentlyUsedFileListStore()
ReDim RecentFileListArray(Application.RecentFiles.Count) 'As Variant
On Error Resume Next
MsgBox (Application.RecentFiles.Count & " file(s) in Recently Used File
List ")
For NDX = 1 To Application.RecentFiles.Count
MsgBox (Application.RecentFiles(NDX).Name)
RecentFileListArray(NDX) = Application.RecentFiles(NDX).Name
Next
MsgBox (LBound(RecentFileListArray) & " " & UBound(RecentFileListArray))
End Sub
Sub A0_RecentlyUsedFileListDisplay()
Dim Counter As Integer
For Counter = LBound(RecentFileListArray) To UBound(RecentFileListArray)
MsgBox (RecentFileListArray(Counter))
Next
End Sub
--
天行健,君*以自強不息
地勢坤,君*以厚德載物
http://www.vba.com.tw/plog/
"Peter Rooney" wrote:
ChiJanZen,
I'm quite a bit further on now, thanks to your help!
I have now successfully stored the items in the recently used file list to a
variable, and I can reference the array elements individually. What I now
want to do is first of all display them in a for each loop, then work towards
restoring them back from the array to the recently used file list once more.
However, I'm having some trouble doing this. Here's what I have:
Sub A0_RecentlyUsedFileListStore()
ReDim RecentFileListArray(Application.RecentFiles.Count - 1) 'As Variant
On Error Resume Next
MsgBox (Application.RecentFiles.Count & " file(s) in Recently Used File
List")
For NDX = 1 To Application.RecentFiles.Count
MsgBox (Application.RecentFiles(NDX).Name)
RecentFileListArray(NDX) = Application.RecentFiles(NDX).Name
Next
MsgBox (LBound(RecentFileListArray) & " " & UBound(RecentFileListArray))
End Sub
When I run my display macro, I get a "Subscript out of range" error.
Sub A0_RecentlyUsedFileListDisplay()
Dim Counter As Integer
For Counter = LBound(RecentFileListArray) To UBound(RecentFileListArray)
MsgBox (RecentFileListArray(Counter))
Next
End Sub
Any ideas what I'm doing wrong now, please?
Thanks in advance
Pete
"chijanzen" wrote:
Peter:
doesn't display an empty message box.
MsgBox (Application.RecentFiles(1).Path)
or
Dim Recent As Variant
Sub test()
ReDim Recent(Application.RecentFiles.Count)
For Each f In Application.RecentFiles
Recent(I) = f.Path
I = I + 1
Next
' Application.RecentFiles.Maximum = 0
For I = 0 To UBound(Recent)
MsgBox Recent(I)
Next I
End Sub
--
天行健,君*以自強不息
地勢坤,君*以厚德載物
http://www.vba.com.tw/plog/
"Peter Rooney" wrote:
Good morning, ChiJanZen
Well, at least I understand the object collection that I need to refer to,
but I can't get it to work at the moment.
Even
MsgBox (Application.RecentFiles(1))
doesn't display an empty message box.
I'm stumped.
Pete
doesn't display anything - not even the messagebox
"chijanzen" wrote:
Peter:
Other method,delete ThisWorkbook.FullName in RecentFiles list
With ThisWorkbook
For Ndx = 1 To Application.RecentFiles.Count
If Application.RecentFiles(Ndx).Path = .FullName Then
Application.RecentFiles(Ndx).Delete
Exit For
End If
Next Ndx
End With
--
天行健,君*以自強不息
地勢坤,君*以厚德載物
http://www.vba.com.tw/plog/
"Peter Rooney" wrote:
Good morning, all,
One of my applications disables the recently used file list, but when I
re-enable it, all its entries are lost.
Is there any way in which I can store the filenames in the list to an array,
then restore them later on?
Thanks in advance
Pete