Word: Konvertierung von Wordbasic-Befehlen

Wie Sie vielleicht bei den AutoMakros feststellen konnten, werden Makros seit der Einführung von Word 97 in einer völlig anderen Art und Weise behandelt als in allen früheren Versionen von Word 2000. Word-Makros werden seither auch in der von Microsoft Access oder Microsoft Excel bekannten Programmiersprache Visual Basic for Applications (VBA) gespeichert. Das bedeutet für Sie als Anwender und Programmierer, daß Sie alle bisherigen Makros in dieses neue Format konvertieren müssen. Dabei sollten Sie beachten, daß Sie Makros aus Word 2000 2.x nicht direkt in das neue Format konvertieren können. Sie müssen solche Makros zuerst im Word 6.x-Format speichern, denn nur Makros im Word 6.x-Format können in das Format der aktuellen Version von Word 2000 konvertiert werden. Word 7.0 für Windows besitzt ebenfalls das Word 6.0 Dateiformat sowohl für Dokumente als auch für Makros, somit sind bei der Konvertierung von Makros keine Probleme zu erwarten.

Makros aus älteren Word 2000 Versionen werden automatisch konvertiert, wenn Sie

v  eine Dokumentvorlage mit WordBasic-Makros öffnen.

v  ein neues Dokument basierend auf einer alten Dokumentvorlage – die WordBasic-Makros enthält – erstellen.

v  einem Dokument eine ältere Dokumentvorlage über das Menü EXTRAS > VORLAGEN UND ADD-INS zuweisen.

Den Fortgang der Konvertierung können Sie bei komplexeren Makros in der Statuszeile verfolgen. Sie sollten nach erfolgreicher Konvertierung die Dokumentvorlage speichern, ansonsten wird bei jedem Aufruf der alten Dokumentvorlage die Konvertierung erneut durchgeführt. Das kann bei umfangreichen Vorlagen unter Umständen einige Minuten dauern.

Jedes Makros Ihrer alten Dokumentvorlage wird bei der Konvertierung in ein eigenes Visual Basic Modul übertragen. Sie können es dann über den bereits aufgezeigten Weg EXTRAS > MAKRO > MAKROS > BEARBEITEN ansehen und ggf. nachbearbeiten. In der Liste der zur Verfügung stehenden Makros werden WordBasic-Makros mit Makroname.Main aufgelistet. Dabei steht Makroname für den Namen Ihres Makros und Main für die Hauptroutine eines WordBasic Makros, da in früheren Versionen von Word 2000 alle Makros mit Sub Main begannen.

Jedes WordBasic-Makro wird Zeile für Zeile konvertiert, damit es unter der neuen Programmiersprache Visual Basic for Applications funktioniert. Das konvertierte Makro unterscheidet sich nicht in der Funktion von dem WordBasic-Makro, sehr wohl jedoch von der Art der Ausführung innerhalb von Visual Basic. Schauen wir uns dazu das folgende Beispiel an.

Das AutoClose-Makro könnte zum Beispiel in Ihrer alten Word 2000 Version so ausgesehen haben.

Beispiel: Altes WordBasic Makro

Sub MAIN

On Error Goto Ende

Datei$ = DateiName$()

DateiSchließen 1

DateiKopieren Datei$, “H:SICHRNGTEXTE“

Ende:

End SUB

Nach der Konvertierung in Visual Basic sieht das Makro so aus.

Beispiel: In Visual Basic konvertiertes WordBasic Makro

Public Sub MAIN()

On Error GoTo Ende

Datei$ = WordBasic.DateiName$()

WordBasic.DateiSchließen 1

WordBasic.DateiKopieren Datei$, “H:SICHRNGTEXTE“

Ende:

End SUB

Wie deutlich zu erkennen ist, wird jeder WordBasic-Befehl als WordBasic-Eigenschaft von Visual Basic for Applications hinzugefügt. Nur dieses WordBasic-Objekt ermöglicht die Ausführung von alten WordBasic-Makros in Word 97. Das WordBasic-Objekt enthält alle Befehle und Funktionen der früheren Versionen von Word 2000. Das folgende Visual Basic-Programm ist funktionsmäßig identisch mit dem konvertierten WordBasic-Makro.

Beispiel: Funktionsseitig identisches Visual Basic Programm

Sub AutoClose()

On Error GoTo Ende

ActiveDocument.Save

DateiName = ActiveDocument.Name

ActiveDocument.SaveAs FileName:=“H:SICHRNG“ & DateiName

Ende:

End Sub

Sie sollten für die Entwicklung neuer und umfangreicher Programme auf die Verwendung der alten WordBasic-Befehle verzichten, da diese mit nachfolgenden Versionen von Word wohl nicht mehr unterstützt werden. Die Programmiersprache Visual Basic bietet darüber hinaus eine wesentlich bessere Funktionalität und Erweiterbarkeit, außerdem wird sie von allen Microsoft Office Anwendungen unterstützt. Die Unterstützung der alten WordBasic-Befehle trägt lediglich dem Umstand Rechnung, daß die wenigsten Menschen auf liebgewordene Gewohnheiten verzichten können. Sie sollten bei der Konvertierung von Makros aber besonders darauf achten, daß die folgenden WordBasic-Befehle nicht konvertiert werden können:

v  Das Dateivorschau-Steuerelement geht bei der Konvertierung verloren. Es wurde zwar durch ActiveX-Controls ersetzt, der Konverter kann die Dateivorschau aber nicht einfach in ein ActiveX-Control konvertieren.

v  Speziell beim Debuggen von Makros wurde der Befehl Stop –1 eingesetzt, dieser wird nun nicht mehr unterstützt, da der Visual Basic-Editor wesentlich komfortablere Debug-Möglichkeiten bietet.

v  Das Editiren von Makros aus einem Makro heraus kann ebenfalls nicht unterstützt werden, da WordBasic-Makros in einer Art Dokument editiert werden müssen. Die jetzige Struktur sieht aber nur die Möglichkeit vor, daß Makros im Visual Basic-Editor editiert werden.

v  Dialoge, die ab Word 97 eine neues Layout erhalten haben, werden von WordBasic ebenfalls nicht unterstützt. Das bedeutet, eine Konvertierung der alten Dialogfelder von früheren Word 2000 Versionen ist nicht in jedem Fall von Erfolg gekrönt.

Die vorhergehend beschriebenen Schwierigkeiten lassen sich ohne große Umstände umgehen, indem Sie die Programmiersprache Visual Basic for Applications für die Entwicklung Ihrer neuen Makros bzw. für die Überarbeitung alter Makros verwenden. Im folgenden Kapitel werden wir die Programmiersprache Visual Basic for Applications näher kennen lernen.

Die mobile Version verlassen