Problems starting Word from Excel VBA

Discussion in 'Excel Programming' started by, Apr 3, 2014.

  1. Guest

    I have this code (as part of a long automation code, that simulates mailmerge by substituting bookmarks in a Word template with information from a spreadsheet):

    On Error Resume Next
    Set Wdapp = GetObject(, "Word.application")
    If Err.Number <> 0 Then
    Set Wdapp = CreateObject("Word.Application")
    End If

    It was made for Excel 2003, and now - after having upgraded to 2007 it does not work. If an instance of Word is already open, when I run the code, it Works as it is supposed, but if Word is not already started, it doesn't. So apparently the
    Set Wdapp = CreateObject("Word.Application") par does not execute.

    I have references to

    Visual Basic for Applications
    Microsoft Excel 12.0 Object Library
    OLE Automation
    Microsoft Office 12.0 Object Library
    Microsoft Word 12.0 Object Library
    Microsoft Office 12 Authorization Control 1.0 Type Library
    Microsoft ActiveX Data Objects 2.8 Library
    Microsoft ActiveX Data Objects Recordset 6.0 Library

    What am I missing here?

    , Apr 3, 2014
    1. Advertisements

  2. Claus Busch Guest

    Hi Jan,

    Am Thu, 3 Apr 2014 03:50:43 -0700 (PDT) schrieb :
    you have to open an existing document or to add a new document:

    Set ObjWord = CreateObject("Word.Application")

    With ObjWord
    .Visible = True
    ' .documents.Open "E:\Excel_NG\Freigaben bei OneDrive.docx"
    End With

    Claus B.
    Claus Busch, Apr 3, 2014
    1. Advertisements

  3. Guest

    Thank you. But why did it Work in 2003 then? Or is this a new thing?


    Den torsdag den 3. april 2014 13.06.54 UTC+2 skrev Claus Busch:
    , Apr 3, 2014
  4. GS Guest

    GetObject("Word.Application") hijacks a running instance of the
    application, and so if Word is not running then your reference *Is

    CreateObject("Word.Application") starts an automated instance of Word
    if it's installed on the machine. If not installed then your reference
    *Is Nothing*!

    I don't see where you check to see that the instance of Word you want
    to use actually exists...

    Dim oWD As Object

    Set oWD = GetObject("Word.Application")
    If oWD Is Nothing Then CreateObject("Word.Application")

    If Not oWD Is Nothing Then
    'if you got here then
    'you have a fully qualified ref
    'to a running instance of Word,
    'so do stuff!
    End If


    Free usenet access at
    Classic VB Users Regroup!
    GS, Apr 3, 2014
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.