Schriftproben-Tabelle ausgeben

Ich habe vor Jahren aus der Zeitschrift WIN ein Makro fⁿr Word 6.0 abgeschrieben, das eine Tabelle mit Namen und Schriftproben aller in Word zur Verfⁿgung stehenden Schriftarten anlegt. Dabei stehen in einer Spalte die Namen der Schriften und in der daneben liegenden Spalte ein Beispiel in der entsprechenden Schrift. Ein Σhnliches Makro fⁿr Winword 97 konnte ich leider bisher nicht finden. K÷nnen Sie mir hier weiterhelfen?

CHIP hat das Makro fⁿr Sie umgeschrieben. Sie finden es auf der Heft-CD CHIP-Code FONTVIEW. Laden Sie die Dokumentvorlage FONT97.DOT fⁿr Word 97 oder FONT2000.DOT fⁿr Word 2000. Wenn Sie auf Basis dieser Dokumentvorlagen ein neues Dokument anlegen und das Ausfⁿhren von Makros zulassen, startet Word ganz automatisch die VBA-Funktion ╗autoOpen()½ aus der DOT-Vorlage û Sie mⁿssen ⁿbrigens nur eine Funktion mit diesem Namen belegen, damit Word diese stets beim ╓ffnen eines Dokuments ausfⁿhrt.
Der Quellcode der Funktion ╗autoOpen()½ ist in der Version fⁿr Word 2000 im Kasten abgedruckt. Nach einer kleinen ─nderung lΣsst sich dieser Code auch fⁿr Word 97 nutzen.

Sub autoOpen()

   Selection.Font.Name = äArialô
   Selection.Font.Size = 12

   æ Tabelle erzeugen

   ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=1, NumColumns:=2, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed

   æ Ueberschriften in der Tabelle
     Selection.TypeText Text:=ôNameô
     Selection.MoveRightUnit:=wdCell
     Selection.TypeText Text:=ôSchriftprobeô

   æ Schriftproben

   For Each aFont In FontNames

      Selection.MoveRight Unit:=wdCell
      Selection.Font.Name = äArialô
      Selection.TypeText Text:=aFont

      Selection.MoveRight Unit:=wdCell
      Selection.Font.Name = aFont
      Selection.TypeText Text:=ôDies ist eine Schriftprobeô

   Next aFont

End Sub


Und so funktioniert das Listing: Zuerst belegt die Funktion die Eigenschaften ╗Font.Name½ und ╗Font.Size½ des Objekts ╗Selection½ mit einem Standardwert, um Schriftart und -gr÷▀e zu bestimmen. ╗Selection½ steht hierbei fⁿr den Einfⁿgepunkt auf dem Dokument.
Die Anweisung ╗ActiveDocument. Tables.Add½ erzeugt dann eine Tabelle. Der Parameter ╗Range½ definiert dabei den Bereich, in dem Word die Tabelle anzeigen soll. ╗NumRows½ und ╗NumColumns½ bestimmen die Anzahl der Zeilen und Spalten. In unserem Beispiel wird eine Tabelle mit einer Zeile und zwei Spalten erzeugt, da dem Programm zu diesem Zeitpunkt noch unbekannt ist, wie viele Zeilen es tatsΣchlich ben÷tigt.
Die letzten beiden Parameter sind nicht zwingend notwendig und erst seit Word 2000 verfⁿgbar. Sie sollten die Parameter dennoch verwenden, da sie einen erheblichen Komfort bieten. ╗DefaultTableBehavior½ erlaubt oder unterbindet das automatische Anpassen der Zellgr÷▀e an den jeweiligen Inhalt der Zellen, wΣhrend ╗AutoFit-Behavior½ die Regeln fⁿr diese Anpassung festlegt. Wenn Sie den VBA-Code fⁿr Winword 97 nutzen wollen, mⁿssen Sie allerdings auf diese beiden Parameter verzichten.
Die Methode ╗TypeText½ fⁿgt Texte oder Inhalte von Variablen in ein Dokument ein. ╗MoveRight½ verschiebt die Einfⁿgemarke dann nach rechts, wobei Sie mit ╗Unit:=wdCell½ angeben, dass Word jeweils zur nΣchsten Tabellenzelle springen soll. Falls keine weitere Zelle in dieser Tabelle existiert, erzeugt Word automatisch eine weitere.
Zu guter Letzt lesen Sie in einer ╗For Each½-Schleife die Namen der verfⁿgbaren Schriftarten aus der Liste ╗FontNames½. Innerhalb dieser Schleife geben Sie mit Hilfe der bereits erlΣuterten Methoden ╗Font.Name½, ╗TypeText½ und ╗MoveRight½ des Objekts ╗Selection½ die Namen der verschiedenen Schriften aus und daneben jeweils eine Schriftprobe dazu. Als Text dient dabei der Satz äDies ist eine Schriftprobeô.