Prüfen, ob Word gestartet ist

Prüfen, ob eine bestimmte Word-Version gestartet ist

Etwas komplizierter ist es schon, wenn Sie prüfen möchten, ob eine bestimmte Word-Version gestartet ist. Theoretisch gibt es dazu zwei Möglichkeiten.

  • Sie geben zunächst das Word.Application-Objekt zurück und rufen dann dessen Version- Eigenschaft ab, um die Version zu ermitteln.

  • Sie versuchen mit der GetObject-Funktion ein bestimmtes Word.Application-Objekt zurückzugeben.

Die erste Möglichkeit zeigt Listing 2. Hier wird zunächst mit der GetObject-Funktion das Word.Application-Objekt zurückgegeben. Falls das gelingt, befindet sich dieses nun in der Variablen objWord und Sie können dessen Version- Eigenschaft abfragen. Dies ist aber eine Zeichenkette, die in der Regel einen Punkt enthält, beispielsweise "11.0" für Word 2003. Nach dem Punkt könnte aber auch eine weitere Zahl kommen, die abhängig vom installierten Service-Pack eine Unterversion angibt. Damit Sie die Zahl vor dem Punkt ermitteln und zurückgeben können, wird zunächst mit der Val-Funktion die Zeichenkette in eine Zahl konvertiert und diese dann mit CByte in einen Bytewert konvertiert.

Function WordVersiongestartet1() As Byte
Dim objWord As Object
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
If objWord Is Nothing Then
'Word ist nicht gestartet
WordVersiongestartet1 = 0
Else
WordVersiongestartet1 = CByte(Val(objWord.Version))
End If
End Function

Die Funktion gibt die ermittelte Word-Version zurück oder 0, wenn Word nicht gestartet ist.

Der Nachteil besteht darin, dass die GetObject- Funktion irgendein vorhandenes Word.Application- Objekt zurückgibt. Hat der Benutzer beispielsweise gleichzeitig Word 97 und Word 2003 offen, ist es dem Zufall überlassen, welches Objekt die GetObject-Funktion ermittelt, und damit auch, welche Version die Funktion liefert. Gibt die Funktion also zum Beispiel 8 zurück, heißt das noch nicht, dass die Word-Version 9 (2000) nicht auch gestartet ist.