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 aus dem Kasten unten links 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 im Kasten oben 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)