Sudden macro error

M

Mark

I've noticed the failure of several macros recently, they worked perfectly
for years under Word 2000 and have stopped with Word 2002. No idea why.

This is typical. It stops at rf.Path with Runtime error 5152: Method 'path'
of object 'RecentFile' failed. When in debug mode, 'Fullname' contains the
full file name/path of the first RecentFile so I don't see how rf.Path and
rf.Name have failed!
---
Sub CleanRecentFileList()
' Cleans history on file menu
' if file cannot be seen, it is removed from the list.

Dim rf As RecentFile, FullName As String
Const CLEARABSENTNETDOCS As Boolean = False
' Change to True to delete docs on absent network drives
Const CLEARABSENTREMOVABLES As Boolean = True
' Change to False to retain docs on absent removable drives
For Each rf In RecentFiles
FullName = rf.Path & Application.PathSeparator & rf.Name ' Fails here!

If FullName = Application.PathSeparator And CLEARABSENTNETDOCS Then
' Probably absent network drive
rf.Delete
Else
On Error Resume Next
' VBA raises error if file is on absent removable disk
If Dir(FullName) = "" Then
If (Err.Number <> 0 And CLEARABSENTREMOVABLES) Or (Err.Number = 0)
Then
rf.Delete
End If
Err.Clear
End If
On Error GoTo 0 ' Reinstate normal VBA error handling
End If
Next
End Sub
---

Any ideas? Is it a missing reference?


Mark
 
W

Word Heretic

G'day (e-mail address removed) (Mark),

LOL - it is exactly what you are testing for. If the file no longer
exists its path is invalid lol

Steve Hudson - Word Heretic

steve from wordheretic.com (Email replies require payment)
Without prejudice


Mark reckoned:
 
M

Mark

But this works in Word 2000, the entry in the recentfile list is removed
because the filename no longer exists. All that first section is doing is
parsing RecentFiles for filenames/paths, it isn't checking their existence
until the section after where it fails.
Perhaps you can suggest why it is failing there where indicated?
Mark
 
W

Word Heretic

G'day (e-mail address removed) (Mark),

When it fails, note the filepath of the object and look it up. I bet
you it is one of the missing ones. Word 2k doesnt validate these
entries, Word 2003 might. If the failing object doesn't exist on the
disk as indicated, then your on error can immediately flag that entry
as bad and remove it on the spot. I would also throw a debug statement
in to see whether any of teh netries are thus processed by your
existing logic in Word 2003.

Steve Hudson - Word Heretic

steve from wordheretic.com (Email replies require payment)
Without prejudice


Mark reckoned:
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top