How to Activate newly created documents in Word 2000

Article contributed by Perry de Lima
 

Word 2000 is SDI orientated.

SDI = Single Document Interface, in other words: every child has a parent….

To work-around the problem of not being able to activate newly created documents from a userform, you’ll have to force your OS to activate the parent of newly created documents, assisted by a couple of API calls, as opposed to trying to get MS Word to activate the newly created document itself.

The code below exemplifies two API functions declared locally in the general declaration section of a userform, and the use of the cmdOK’s click event to create the new document, unload itself and activate this newly created document, regardless how many SDI instances are running.

Private Declare Function GetActiveWindow Lib "user32" () As Long
Private Declare Function SetFocus Lib "user32" (ByVal hwnd As Long) As Long

Private Sub cmdOK_Click()

Dim sTemplate As String
Dim d As Word.Document
Dim l As Long

sTemplate = “d:\Docs\A_Template.dot”
    'Create a new document
    Set d = Documents.Add(sTemplate

     '<rest of the code goes here>

  'Avoid SetFocus() API to return the userform windowhandle
     Unload Me

 
'Activate the parent window of the newly created doc (SDI)
    d.Parent.Activate

 
'Force your OS to activate the currently active window
     l = SetFocus(GetActiveWindow())

End Sub