Verschiedene Schriftgrößen innerhalb einer Markierung global ändern

Ich setze in meinen Dokumenten häufig innerhalb eines Absatzes mehrere unterschiedliche Schriftgrößen ein. Wenn ich dann die Schriftgrößen generell um einige Punkt ändern möchte, muß ich immer alles von Hand umstellen, da Word bei Anwendung des Befehls »Format« sämtliche Zeichen mit der gleichen Schriftgröße formatiert. Wie läßt sich dieses typografische Problem lösen?

Prinzipiell ist in Word kein gleichzeitiges Verstellen verschiedener Schriftgrößen in einem Absatz möglich. Das liegt darin begründet, daß die Schriftgröße der Gruppe der Zeichenformate angehört, die immer nur zeichenweit wirken.

Zum Glück verfügt Word genau aus diesem Grund intern über eine Auflistung aller Zeichen eines Textes, was die Lösung Ihres Problems per Makro möglich macht.

Starten Sie mit dem Befehl »Extras | Makro | Visual Basic Editor« den VBA-Editor und fügen Sie der Vorlage NORMAL.DOT mit dem Befehl »Einfügen | Modul« ein neues Modul und diesem mit dem Befehl »Einfügen | Prozedur« eine neue Prozedur hinzu. Dort geben Sie das Listing 1 ein oder besser, Sie kopieren die Zeilen aus der Datei GLOBAL.TXT von der Heft-CD.

Das Makro arbeitet folgendermaßen: Mit der ersten Anweisung fügen Sie an der aktuellen Cursorposition eine Textmarke ein. Das ist dann sinnvoll, wenn Sie nach dem Ausführen des Makros wieder genau an diese Stelle zurückkehren möchten. Die folgende Anweisung setzt die Einfügemarke an den Anfang des Dokuments. Anschließend definiert das Makro eine Konstante für die Liste der Zeichen, um einfacher darauf zugreifen zu können.

Die »For Each«-Schleife in Zeile 5 durchläuft nun diese Liste und markiert jedes einzelne Zeichen, erhöht die jeweilige Schriftgröße um zwei Punkt und verschiebt die Einfügemarke um ein Zeichen nach rechts. Sobald alle Zeichen im Dokument derart modifiziert sind, setzt die vorletzte Anweisung die Einfügemarke wieder an die Ausgangsposition zurück. Die letzte Anweisung entfernt die zu diesem Zweck eingefügte Textmarke wieder.

Wenn Sie den Wert »+2« von »Selection.Font.Size« (Programmzeile 7) in »-2« ändern, können Sie die Zeichen entsprechend verkleinern.

Durch eine Abfrage mit Hilfe der Funktion »InputBox« können Sie das Makro auch für beliebige Größenänderungen einsetzen. Stellen Sie dazu dem Makro die Zeilen aus Listing 2 voran.

Zur Anpassung müssen Sie im ersten Listing noch die Angabe »+2« hinter der Anweisung »Selection. Font.Size« durch die Variable »Wert« ersetzen. Dann können Sie mit diesem Makro alle gewünschten Änderungen an der Schriftgröße komfortabel vornehmen.

Listing 1: Mehrere Schriftgrößen global ändern
Sub IndivFormat ()
ActiveDocument.Bookmarks.Add Range:Y =Selection.Range, Name:="AktPos"
Selection.HomeKey Unit:=wdStory
Set ListOfCharacters = ActiveDocument.Y Characters
For Each i In ListOfCharacters
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Font.Size = Selection.Font.Y Size + 2
Selection.MoveRight Unit:=wdCharacter, Count:=1
Next i
Selection.GoTo What:=wdGoToBookmark, Name:="AktPos"
ActiveDocument.Bookmarks ("AktY Pos").Delete
End Sub
Listing 2: Input-Box zur Eingabe der Schriftgröße
Sub IndivFormat ()
Dim Mldg, Titel, Voreinstellung, Wert
Mldg = "Um wieviel Punkt möchten Y Sie den Text vergrößern/verkleinern?"
Titel = "Schriftgröße global ändern"
Voreinstellung = "2"
Wert = InputBox (Mldg, Titel, Vor Y einstellung)