 |
Mehrfache Eingaben für Word 97 vermeiden
Ich verwende Word 97, um ein Formular mit mehreren Durchschlägen zu drucken. Da ich die Durchschläge als einzelne Seiten konzipiert habe, sind einige Eingaben mehrfach vorzunehmen. Gibt es eine Möglichkeit, einmal gemachte Eingaben gleich in alle Stellen des Dokuments zu schreiben, um redundante Eingaben zu vermeiden?
Das läßt sich per Makro vermeiden. Dabei schreiben Sie die Werte nicht ins Dokument, sondern jeweils in eine Variable. Das Makro fügt dann den Inhalt der Variablen in die gewünschten Stellen ein. Um Word mitzuteilen, wo es die Werte einfügen soll, kennzeichnen Sie die betreffenden Stellen zuvor mit Hilfe von Textmarken. Öffnen Sie zunächst Ihr Formular und überlegen sich, an welchen Stellen die gleichen Werte einzugeben sind. Dann positionieren Sie den Cursor an der ersten Stelle und definieren dort mit Einfügen – Textmarke eine Textmarke. Wählen Sie einen bezeichnenden Namen und beenden den Namen mit der Zeichenfolge _1, also beispielsweise Name_1. Anschließend setzen Sie den Cursor an die nächste Stelle. Dort definieren Sie eine Textmarke mit der Bezeichnung Name_2. Auf diese Weise versehen Sie das ganze Dokument mit entsprechenden Textmarken. Benutzen Sie dabei immer einen beschreibenden Namen und die Indizierung durch eine fortlaufende Zahl. Sobald alle notwendigen Textmarken definiert sind, starten Sie mit dem Befehl Extras – Makro – Makros den gleichnamigen Dialog. Als Namen geben Sie AutoNew ein und wählen die Schaltfläche Erstellen. Word startet den Visual-Basic-Editor. Zwischen Sub AutoNew() und End Sub geben Sie die Zeilen aus Listing 1 (rechts) ein Statt der im Beispiel für die Funktion ActiveDocument.Bookmarks() verwendeten Name_1, Name_2 etc., setzen Sie die Namen Ihrer Textmarken in Anführungszeichen ein. Direkt nach dem Anlegen eines neuen Dokuments startet Word dann automatisch das Makro AutoNew. Die DIM-Anweisung definiert eine Textvariable, in der Sie die Eingabewerte zwischenspeichern. Die On-Error-Aweisung sorgt für einen gesicherten Abbruch des Makros, falls etwas schiefläuft. Mit der Anweisung InputBox veranlassen Sie Word, einen kleinen Eingabedialog zu starten. Der fragt mit dem ersten in Klammern angegebenen Text nach einem Eingabewert und übergibt ihn an die Variable Wert. Die Methode ActiveDocument.Bookmarks(„Name_1“).Select bewegt die Einfügemarke an die Textmarke Name_1. Mit Hilfe der Methode InsertAfter fügen Sie den Inhalt der Variablen Wert hinter der aktuellen Position der Einfügemarke ein. Auf diese Weise können Sie nach dem Erfragen des Wertes die Einfügemarke von Textmarke zu Textmarke bewegen und den Wert beliebig oft einfügen. Um mehrere Werte, beispielsweise Ort, Straße etc., einzufügen, erweitern Sie das Makro vor der Anweisung GoTo Fertig: durch eine weitere InputBox-Anweisung. Sie überschreiben dabei einfach die dann nicht mehr benötigte Variable Wert und suchen anschließend wieder die entsprechenden Textmarken auf. Um beispielsweise noch die Straße abzufragen und zweimal einzufügen, wäre das Makro so zu ergänzen, wie in Listing 2 zu sehen. Beachten Sie, daß die richtige Plazierung der Textmarken eine elementare Voraussetzung für das korrekte Funktionieren dieses Makros ist. Das Makro und dessen Erweiterung finden Sie auf der WIN-Monats-CD und in den WIN-Online-Foren.
Listing 1: Automatische Mehrfacheingaben in Word 97 Sub AutoNew ()
Dim Wert As String On Error GoTo Fehlerbehandlung
Wert = InputBox (“Wert für Name:“, “Eingabe“, “Ein Name“) ActiveDocument.Bookmarks (“Name_1“).Select Selection.InsertAfter Wert ActiveDocument.Bookmarks (“Name_2“).Select Selection.InsertAfter Wert ActiveDocument.Bookmarks (“Name_3“).Select Selection.InsertAfter Wert GoTo Fertig
Fehlerbehandlung: MsgBox “Sie haben die Aktion abgebrochen!“
Fertig: End Sub Listing 2: Mehrere Werte automatisch eingeben [...] ActiveDocument.Bookmarks (“Name_3“).Select
Wert = InputBox (“Wert für Straße:“, “Eingabe“, “Eine Straße“) ActiveDocument.Bookmarks (“Str_1“).Select Selection.InsertAfter Wert ActiveDocument.Bookmarks (“Str_2“).Select Selection.InsertAfter Wert
GoTo Fertig [...]
|
 |