954,582 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

save a word 2007 document using vb6

Hi, I am using vb6 to manipulate my word 2003 template .dot and save it into .doc.

My current method is:
I am creating I word class, called W.

then I use:
W.activedocument.SaveAs "documentname.doc", 0, 0, "". 1, "", 0, 0, 0, 0, 0

It can be used perfectly for word 2003.

But when I use it in word 2007, I got a problem.
It seems that all the manipulation in .dot file can be done.
But when I try to save that new document as "documentname.doc", I cannot do it.

I think, it is because word 2007 has .dotx and .docx as a default format.
I tried to save my .dot template as .dotx. Then my program opened it, manipulated it and saved my document as "documentname.docx"
But I still could not save it.

What should I do?
thanks a lot

neosonic
Junior Poster
137 posts since Nov 2009
Reputation Points: 22
Solved Threads: 1
 

Try to use

Format:=wdOpenFormatAuto


before your

W.activedocument.SaveAs "documentname.doc", 0, 0, "". 1, "", 0, 0, 0, 0, 0
AndreRet
Senior Poster
3,922 posts since Jan 2008
Reputation Points: 334
Solved Threads: 350
 

Hi thanks for your help :) you are the best :)

Are you sure that Format:=wdOpenFormatAuto is suitable for vb6?
It seems that it doesn't recognize it, it keeps on saying "compile error: expected expression".

and when I used fileformat = wdopenformatauto. the error says, the variable is undefined refers to wdopenformatauto.

what should I do? at this moment, I build my vb6 program with the laptop which the 2003 microsoft office installed in it (but not 2007). is it the source of the problem? should I install 2007 in that laptop, so it can recognize "Format:=wdOpenFormatAuto"?

thanks a lot

neosonic
Junior Poster
137 posts since Nov 2009
Reputation Points: 22
Solved Threads: 1
 

No, the wdOpenFormatAuto automatically recognizes which version of Office is installed and will then save the file as either .doc or .docx.:)

Paste the code you have before AND after the wdOpenFormatAuto. I think the problem lies in there somewhere. It is most definitely not a problem within vb6, I have used it before with full on success.:)

AndreRet
Senior Poster
3,922 posts since Jan 2008
Reputation Points: 334
Solved Threads: 350
 

This is what inside my class called word.

I opens it anywhere in my forms using W.showme or W.savedocument etc.

Option Explicit

Private W As Object

Private Sub Class_Initialize()

  On Error GoTo eInit
  If gnWordVersion = 95 Then
    'Word 95 format
      Set W = CreateObject("word.basic")
  Else
    'Word 97 format
      Set W = CreateObject("word.application")
  End If
  
  Exit Sub
    
eInit:
  
    MsgBox "Could not initialise word.  " & Error

End Sub

Public Sub ShowMe()
  On Error Resume Next
  DoEvents
  If gnWordVersion = 95 Then
    W.appshow
  Else
    'W.Application.Visible = True
    W.wordbasic.appshow
  End If
End Sub

Public Sub SaveDocument(DocName As String)
On Error GoTo WError
    
  If gnWordVersion = 95 Then
    'Word 95 format eg
      W.FileSaveAs App.path & "\" & DocName, 0, 0, "", 1, "", 0, 0, 0, 0, 0
  Else
    'Word 97 format
      W.Activedocument.SaveAs App.path & "\" & DocName, 0, 0, "", 1, "", 0, 0, 0, 0, 0
  End If
  Exit Sub
WError:
    MsgBox DocName & " is currently active, please close it and run the same function once again." 'save the newer one with the same name to overwrite it."

End Sub




Private Sub Class_Terminate()
  On Error GoTo eTerm
  'Quit
  Set W = Nothing
  Exit Sub

eTerm:

  MsgBox "Could not terminate very well.  " & Error
    
End Sub
neosonic
Junior Poster
137 posts since Nov 2009
Reputation Points: 22
Solved Threads: 1
 

the main problem is caused by the program reference, once I put ms word object reference. I can include it. so my current code for open and save is:

Public Sub OpenDocument(DocName)
  If gnWordVersion = 95 Then
    'Word 95 format
      W.FileOpen (App.path & "\" & DocName)  ', 0, 0, 0, "", "", 0, "", ""
  Else
    'Word 97 format
        W.Documents.Open (App.path & "\" & DocName), ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", format:=wdOpenFormatAuto
  End If
End Sub

Public Sub SaveDocument(DocName As String)
On Error GoTo WError
    
  If gnWordVersion = 95 Then
    'Word 95 format eg
      W.FileSaveAs App.path & "\" & DocName, 0, 0, "", 1, "", 0, 0, 0, 0, 0
  Else
    'Word 97 format
      W.ActiveDocument.SaveAs App.path & "\" & DocName, FileFormat:=wdOpenFormatAuto, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False
  End If
  Exit Sub
WError:
    MsgBox DocName & " is currently active, please close it and run the same function once again." 'save the newer one with the same name to overwrite it."
    'inuseW = True
    'don't do anything
End Sub


But, even after I use that code. I still cannot save .doc in word 2007 yet.
I haven't tried to save .docx yet though.. maybe it will work.
thanks a lot

neosonic
Junior Poster
137 posts since Nov 2009
Reputation Points: 22
Solved Threads: 1
 

I tried to save it as docx... and use dotx template but still not working :(

neosonic
Junior Poster
137 posts since Nov 2009
Reputation Points: 22
Solved Threads: 1
 

just to make it clear... the docname that I use for is:

W.ActiveDocument.SaveAs App.path & "\" & "tester.docx", FileFormat:=wdOpenFormatAuto, LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:=False

neosonic
Junior Poster
137 posts since Nov 2009
Reputation Points: 22
Solved Threads: 1
 

Yay.. finally.. it is done...
The main reason of its failure is.. since I put the entire program in the program files folder, that's why it has a write protection on it. When I put it in desktop, it works fine :) thanks a lot.

neosonic
Junior Poster
137 posts since Nov 2009
Reputation Points: 22
Solved Threads: 1
 

Sorry I could not help you to the end, had to shoot home.:) Well done on solving this yourself though, I gave you some kudos...;)

My next question, after reading your code, would have been "Where do you save the file?" This would have brought up the problem, all about user privileges to the folder and the like.:)

AndreRet
Senior Poster
3,922 posts since Jan 2008
Reputation Points: 334
Solved Threads: 350
 

lol.. :) yup.. that's the source of the problem... thanks a lot :)
You did help me a lot, without your replies, I might have given up on this :p

neosonic
Junior Poster
137 posts since Nov 2009
Reputation Points: 22
Solved Threads: 1
 

It was only a pleasure.:)

AndreRet
Senior Poster
3,922 posts since Jan 2008
Reputation Points: 334
Solved Threads: 350
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: