Vielleicht wollen Sie beim Verfassen von Rundschreiben und Einladungsschreiben kreativ sein. In Word müssen Sie beim Aussuchen einer Schrift immer wieder im Listenfeld blättern, bis Sie die gewünschte Schriftdarstellung gefunden haben. Mit dem folgenden Makro vereinfachen Sie diesen Vorgang, da Sie über ein Dialogfenster wesentlich schneller auf die gewünschte Schriftart zugreifen können:

So erstellen Sie das Formular
- Drücken Sie die Tasten ALT + F11 (= Tastenkombination für Menü Extras - Makro - Visual Basic-Editor).
- Wählen Sie im linken oberen Teilfenster die gewünschte Dokumentvorlage aus, in die das Makro eingefügt werden soll. Voreingestellt ist die Dokumentvorlage "Normal".
- Klicken Sie im Menü Einfügen den Eintrag UserForm.
- Vergeben Sie im linken unteren Fenster Eigenschaften einen Namen für das Formular, z.B. "formularSchriftauswahl".
- Geben Sie neben Caption ein, welche Beschriftung der Dialog tragen soll, z.B. "Verfügbare Schriften".
- Klicken Sie mit der rechten Maustaste das Formular und wählen Sie im Kontextmenü Code anzeigen.
- Klicken Sie im rechten oberen Listenfeld des Code-Fensters den Eintrag Initialize.
- Löschen Sie die Zeilen
Private Sub UserForm_Click() und End Sub - Geben Sie zwischen Private Sub UserForm_Initialize() und End Sub folgende Zeilen ein (oder kopieren Sie den folgenden Code):
Dim AktFont As Variant
If Selection.Type = wdSelectionNormal Then
Selection.Copy
With Me
.Caption = "Verfügbare Schriften"
.StartUpPosition = 0
.Left = Application.Width - .Width
End With
With listeSchriften
For Each AktFont In Application.FontNames
.AddItem AktFont
If Selection.Font.Name = AktFont Then
.ListIndex = .ListCount - 1
End If
Next
.SetFocus
End With
Else
MsgBox "Sie haben keinen Text markiert."
End
End If
- Schließen Sie das Code-Fenster.
So erstellen Sie das Listenfeld
- Neben dem Formular sehen Sie die Werkzeugsammlung. Falls nicht, klicken Sie im Menü Ansicht den Eintrag Werkzeugsammlung.
- Klicken Sie das Steuerelement Listenfeld und zeichnen Sie das Feld in das Formular.

- Markieren Sie das Listenfeld und vergeben Sie bei den Eigenschaften neben (Name) einen Namen für das Listenfeld, z.B. "listeSchriften".
- Klicken Sie mit der rechten Maustaste in das Listenfeld und wählen Sie im Kontextmenü Code anzeigen.
- Geben Sie zwischen Private Sub listeSchriften_Click() und End Sub folgende Zeile ein:
Selection.Font.Name = listeSchriften.Text - Schließen Sie das Code-Fenster.
So erstellen Sie die Schaltflächen
- Markieren Sie das Formular - die Werkzeugsammlung wird wieder eingeblendet.
- Klicken Sie in der Werkzeugsammlung die Befehlsschaltfläche und zeichnen Sie ein Feld dafür in das Formular.
- Geben Sie im Eigenschaftsfenster neben (Name) "befehlOK" und neben Caption "OK" ein.
- Klicken Sie mit der rechten Maustaste auf die neue Schaltfläche und wählen Sie im Kontextmenü Code anzeigen.
- Geben Sie zwischen Private Sub befehlOK_Click() und End Sub folgende Zeile ein:
Unload Me - Schließen Sie das Code-Fenster.
- Klicken Sie in der Werkzeugsammlung die Befehlsschaltfläche und zeichnen Sie ein Feld dafür in das Formular.
- Geben Sie im Eigenschaftsfenster neben (Name) "befehlAbbrechen" und neben Caption "Abbrechen" ein.
- Klicken Sie mit der rechten Maustaste auf die neue Schaltfläche und wählen Sie im Kontextmenü Code anzeigen.
- Geben Sie zwischen Private Sub befehlAbbrechen_Click() und End Sub folgende Zeilen ein:
Selection.Paste
Unload Me - Schließen Sie das Code-Fenster.
So erstellen Sie das Makro
- Klicken Sie im Menü Einfügen den Eintrag Modul. Es öffnet sich ein Fenster, in dessen Titelleiste der Name der Dokumentvorlage erscheint.
- Ändern Sie im linken unteren Teilfenster Eigenschaften den Namen des Moduls. Wählen Sie hierfür einen aussagekräftigen Namen, z.B. "Schriften".
- Geben Sie im Modul-Fenster folgende Zeilen ein:
Sub Schriftauswahl()
formularSchriftauswahl.Show
Die Bezeichnung des anzuzeigenden Formulars (formularSchriftauswahl.Show) ist diejenige, die Sie am Anfang beim Erstellen des Formulars in Schritt 4 vergeben haben.
Die Zeile End Sub wird automatisch eingefügt, falls nicht, müssen Sie End Sub manuell eingeben. - Schließen Sie den Visual Basic-Editor.
- Klicken Sie Extras-> Makro -> Makros, wählen Sie das neue Makro und klicken Sie Ausführen.
Für den schnellen Zugriff auf das Makro fügen Sie ein Symbol in die Symbolleiste ein. Wie das geht, lesen Sie im Tipp "Eigene Symbolleiste erstellen".
20.01.05
Eva Fitz - Redaktionsleiterin bei Comet Computer
Weitere Artikel von Eva Fitz