 |
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
|
 |