Problem saving the active document under a different name in Word with VBA

Running VBA in Word (2010) under Windows 7, I have a VBA program that tries to save the active document under a different name than its current name. The active document can be a *.doc file or a *.docx file. We set the Boolean OldFormat to True if it is in the Word97 *.doc format. Otherwise the document has been generated with Word 2007 or later.
     Here is the code that is giving me problems:

     If OldFormat Then
            ActiveDocument.SaveAs2 FileName:=Path & TargetName, FileFormat:= _
                  wdFormatDocument, AddToRecentFiles:=True
      Else
            ActiveDocument.SaveAs2 FileName:=Path & TargetName, FileFormat:= _
                  wdFormatXMLDocumentMacroEnabled, AddToRecentFiles:=True
      End If

     With a *.doc file, OldFormat = TRUE, so if we step through the code above, control goes to the first of those two “ActiveDocument.SaveAs2” commands. This code works perfectly on my computer, but on another computer I get an error 438 message: “Object does not support this property or method” at that point. The Path appears to be correct, the TargetName is a valid filename, WdFormatDocument = 0.
     What could be causing the 438 error?

jra
JohnRobinAllenRetired professor of FrenchAsked:
Who is Participating?
 
GrahamSkanConnect With a Mentor RetiredCommented:
I get that error on my computer if I use SaveAs2. That is because I only have Word 2007. To run under all releases from Word 97 onwards, use SaveAs.
0
 
Chris BottomleySoftware Quality Lead EngineerCommented:
Can you confirm if the other computer is also 2010 ... if it's 2007 then see Grahams comment.  If it is a 2010 install then it may be the path at fault.

Chris
0
 
JohnRobinAllenRetired professor of FrenchAuthor Commented:
I'll confirm that information after the other party is awake. I'm typing this at 7:30 a.m. in Priddis, Alberta (Mountain time) and he is in Seattle (Pacific Time, 6:30 a.m.), so it is too early to reach him now.
     I had the same results with another friend in Winnipeg (Central Standard Time, 8:30 a.m.), but I cannot contact him until others here are awake too.
          I strongly suspect that Graham Skan's solution will solve the problem and that the path is correct.
     There is another problem that I may pose in a separate question: the person in Seattle is having trouble reading a variable stored in the document, but I will save the details for later (not with this query). His computer reads the variable but then it fails a test in an "If" statement. If I cannot find out what is wrong with that, I'll give full details in another query.
0
 
GrahamSkanRetiredCommented:
JRA,
SaveAs2 accepts an extra argument - CompatibilityMode. If you don't need to use it, you can stick to the old SaveAs method.

It sounds interesting, but I have a feeling that you will be able to solve your Seattle contact's problem yourself.
0
 
JohnRobinAllenRetired professor of FrenchAuthor Commented:
This is the solution. However G.S. supplies further useful information about the command in a message below.

Once again, many thanks to GS and to EE!
Appreciation also to CB. He could have found a cause of the problem but the problem lay elsewhere.

j.r.a.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.