All right, so did anyone say "MSWord is too slow because of the background repagination and so on..." . Fine. So just get rid of it. 
 
Here is my suggestion (and it works) : 
 
' Instantiate your MSWord OLE object 
 
Const OLE_OBJECT = "Word.Application" 
Set WordObj = CreateObject ( OLE_OBJECT ) 
 
' Backup user's settings on MSWord 
 
intUsersCheckSpellingAsYouType = WordObj.Options.CheckSpellingAsYouType 
intUsersCheckGrammarAsYouType = WordObj.Options.CheckGrammarAsYouType 
intUsersWindowViewType = WordObj.ActiveWindow.View.Type 
 
' Remove MSWord's "slow" options 
 
WordObj.Options.CheckSpellingAsYouType = False 
WordObj.Options.CheckGrammarAsYouType = False 
 
' Remove MSWord background repagination too 
' (but you'll have to switch to wdNormalView Window type first, which equals to 1 by the way...) 
 
WordObj.ActiveWindow.View.Type = wdNormalView 
intUsersPagination = WordObj.Options.Pagination  
WordObj.Options.Pagination = False 
 
' OK, now go ahead... 
 
Call WordObj.Documents.Open("MyDoc.doc") 
Set WordDoc = WordObj.ActiveDocument 
 
' TypeText your strings and whatever you want... 
 
' At the very end, restore user's settings on MSWord 
 
WordObj.Options.CheckSpellingAsYouType = intUsersCheckSpellingAsYouType 
WordObj.Options.CheckGrammarAsYouType = intUsersCheckGrammarAsYouType 
 
WordObj.Options.Pagination = intUsersPagination 
WordObj.ActiveWindow.View.Type = intUsersWindowViewType 
 
' And get rid of MSWord (er... I mean "free your memory") 
 
Set WordObj = Nothing
  
previous page
 
  |