If you use the CreateObject function with an object of type Word.Application or Word.Basic, the function fails if Word is already running.
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. To work around this problem, check to see whether Word is already running.If it is not, start a new instance of Word. For example, the followingsample procedure uses the GetObject function to create a Word.Application object. If the GetObject function fails, Word is not running, so the CreateObject function is then used to set the Word.Application object.
Sub RunWord() Dim wObj as Word.Application On Error Resume Next ' Get existing instance of Word if it exists. Set wObj = GetObject(, "Word.Application") If Err <> 0 then ' If GetObject fails, then use CreateObject instead. Set wObj = CreateObject("Word.Application") End If ' Add a new document. wObj.Documents.Add ' Exit Word. wObj.Quit ' Clear object memory. Set wObj = NothingEnd Sub
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
For more information about getting help with Visual Basic for Applications,click the article number below to view the article in the Microsoft Knowledge Base:
163435 VBA: Programming Resources for Visual Basic for Applications