![](/file/23459/chip_04_2004.iso/images/spacing.gif) |
Bugfix: Schriftgröße in einem Absatz global ändern
In CHIP 8/99 fragte Leser Peter Nowak nach einer Möglichkeit, verschiedene Schriftgrößen eines Textbereichs mit einem Schritt zu vergrößern oder zu verkleinern.
Bei der Antwort sind unserem Programmierer die Pferde durchgegangen: Weil er zusätzlich den Komfort einer Listbox bieten wollte, ignorierte er die sehr wohl vorhandenen Word-Funktionen und ersann ein kunstvolles Makro. Mit Recht haben uns viele Leser auf die Standard-Shortcuts hingewiesen: Mit [Strg]+[8] und [Strg]+[9] läßt sich für einen markierten Bereich die Schriftgröße punktweise verkleinern oder vergrößern. [Strg]+[<] und [Strg] +[Shift]+[>] gehen auch, allerdings paßt Word dabei die Schrittweite dynamisch an die Schriftgröße an.
Wir danken für Ihre zahlreichen Reaktionen und bemühen uns selbstverständlich, Patzer künftig zu vermeiden. Die Lösung per Dialogfenster finden wir jedoch immer noch komfortabel - daher nochmals das Makro in überarbeiteter Version.
Starten Sie mit »Extras | Makro | Visual-Basic Editor« den Editor und fügen der Vorlage NORMAL.DOT mit »Einfügen | Modul« ein neues Modul und diesem mit »Einfügen | Prozedur« eine neue Prozedur hinzu. Dort geben Sie die Anweisungen aus dem Listing links ein oder kopieren sie aus der Textdatei, die Sie auf der Heft-CD finden.
Mit der ersten Anweisung »ActiveDocument« fügen Sie eine Textmarke an der aktuellen Cursor-Position ein. Die folgende Anweisung setzt die Einfügemarke an den Anfang des Dokuments. Anschließend definieren Sie eine Konstante für eine Liste der Zeichen. Die »For Each«-Schleife durchläuft nun diese Liste, markiert jedes Zeichen, erhöht die Schriftgrößen um den angegebenen Wert und verschiebt die Einfügemarke um ein Zeichen nach rechts. Die vorletzte Anweisung setzt die Einfügemarke an die Ausgangsposition zurück, die letzte Anweisung entfernt die Textmarke wieder.
Listing: inputbox
Sub IndivFormat ()
Dim Mldg, Titel, Voreinstellung, Wert
Mldg = "Wie soll die Größe geändert werden?"
Titel = "Schriftgröße ändern"
Voreinstellung = "2"
Wert = InputBox (Mldg, Titel, Voreinstellung)
ActiveDocument.Bookmarks.Add Range:=Selection.Range, Name:="AktPos"
Selection.HomeKey Unit:=wdStory
Set ListOfCharacters = ActiveDocument.Characters
For Each i In ListOfCharacters
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Font.Size = Selection.Font.Size + Wert
Selection.MoveRight Unit:=wdCharacter, Count:=1
Next i
Selection.GoTo What:=wdGoToBookmark
ActiveDocument.Bookmarks ("AktPos"). Delete
End Sub
|
![](/file/23459/chip_04_2004.iso/images/spacing.gif) |