RSS
StartseiteKnowledge LibraryTop 10Impressum

9.2 Wie stelle ich fest, ob Word bereits geöffnet ist?

VB5-VB6

Von: Thorsten Dörfler

Wenn Word durch den Benutzer gestartet wird, trägt es sich in der globalen Running Object Table (ROT) ein. Diese Word-Instanz steht also systemweit zur Verfügung. Mit der GetObject()-Funktion, erhalten Sie eine Referenz auf diese Instanz. Ist keine Word-Instanz aktiv, löst GetObject einen Fehler aus. So können Sie feststellen, ob Word bereits aktiv ist oder nicht:

Public Function AppIsActive(ByVal Class As String) As Boolean
  Dim lApp As Object

  On Error Resume Next
  Set lApp = GetObject(, Class)

  AppIsActive = Not (lApp Is Nothing)
End Function

Anwendung:

Debug.Print AppIsActive("Word.Application")

Wollen Sie mit der bereits bestehenden Word-Instanz arbeiten und nur bei Bedarf eine neue Word-Instanz erstellen, können Sie dies wie folgt umsetzen:

Dim wdApp As Word.Application

On Error Resume Next
Set wdApp = GetObject(,"Word.Application")
On Error Goto 0

If wdApp Is Nothing Then 
  ' Word läuft nicht, neue Instanz erstellen:
  Set wdApp = New Word.Application
End if

With wdApp
  ' ...
End With

Diese Lösung ist nicht nur auf Word beschränkt, sondern lässt sich so auch auf Excel, Access oder PowerPoint übertragen.