Word ist Makro-fähig. Sprich Sie können in Word programmieren und Arbeitsabläufe automatisieren. Dazu brauchen Sie Kenntnisse in Visual Basic für Applikationen. Lesen Sie hier die wichtigsten Grundlagen und erfahren Sie, wie Sie ganz ohne Programmierkenntnisse Makros schreiben können.
Word Makros aktivieren
Zunächst müssen Sie die Entwicklertools aktivieren, um Word programmieren zu können. Das geht so:
Öffnen Sie das Menü Datei – Optionen.
Klicken Sie auf Menüband anpassen
Aktivieren Sie unter Hauptregisterkarten den Eintrag Entwicklertools.
Makro programmieren in Word
Das sollten Sie über die Makroprogrammierung wissen
Word arbeitet mit Visual Basic for Applications, kurz VBA.
Die Sprache arbeitet objektorientiert. Das bedeutet:
Wörter, Dokumente und so weiter sind Objekte.
Diese Objekte haben Eigenschaften, die Sie ändern können.
Jedem Objekt sind Methoden zugeordnet, die Sie ausführen können.
Lesen Sie hier mehr über Objektorientierte Programmierung in VBA.
Jedes Word-Makro wird als separates Unterprogramm in einer gemeinsamen Quelltextdatei gespeichert.
Der von Word erzeugte Rahmen, in dem die Befehle für das Makro „MeinMakro“ stehen, sieht so aus:
Sub MeinMakro()
End Sub
An Stelle von MeinMakro steht der von Ihnen vergebene Makroname.
Makro-Editor öffnen
Öffnen Sie im Reiter Ansicht den Eintrag Makros – Makros anzeigen.
Im Feld Makroname geben Sie einen Namen für Ihr Makro ein.
Klicken Sie dann rechts auf den Knopf Erstellen.
Nun öffnet sich der Editor.
Beispiel-Makro: Mittlere Satzlänge ermitteln
Unser Beispielmakro ermittelt für den aktuellen Text die durchschnittliche Satzlänge in Wörtern.
Die Logik hinter dem Programm sieht so aus:
Word erlaubt es, eine Schleife über alle Sätze in einem Bereichs laufen zu lassen.
Pro Durchlauf, also für jeden Satz wird dann die Wortlänge ermittelt und je ein Zähler für die Schleifendurchgänge und ein Summenzähler für die Wörter mitgeführt.
Am Ende teilt das Makro die Wortsumme duerch die Anzahl der Sätze und zeigt den Durchschnittswert.
Hinweis: Die Aufgabe hier lässt sich auch wesentlich einfacher ausdrücken, als in unserem Beispiel. Das geht, indem man die Anzahl der Wörter des Dokuments durch die Anzahl der Sätze teilt. Aber wir brauchen die Schleife als Beispiel 😉 . Hier vorab die Kurzversion:
Sub KurzWort()
MsgBox "Wörter pro Satz: " + Str(Int(ActiveDocument.Words.Count / ActiveDocument.Sentences.Count))
End Sub
Aber jetzt zum Beispiel mit Schleife und Variablen. Kopieren Sie die folgenden Zeilen in Ihren Word-Makroeditor. (Achtung! Die erste und die letzte Zeile sollten Sie nicht mit kopieren, da sie im Makro-Editor schon vorgegeben sind.)
Sub Wortzähler()
Dim s As Range
Dim numWords As Integer
Dim numSentences As Integer
numSentences = 0
numWords = 0
For Each s In ActiveDocument.Sentences
numSentences = numSentences + 1
numWords = numWords + s.Words.Count
Next
MsgBox "Durchschnittliche Wörter je Satz: " + Str(Int(numWords / numSentences))
End Sub
So funktioniert das Makro
Zunächst definiert das Makro Variablen mit der Anweisung Dim.
Die Variable s wird als Range definiert.
Dabei handelt es sich um ein Objekt, das einen bestimmten Bereich des aktuellen Dokuments beinhaltet.
In unserem Beispiel werden es die einzelnen Sätze des Dokuments sein.
Die Variablen numSentences und numWords speichern die Anzahl der Sätze und Wörter im Dokument.
Jetzt kommt der Beginn der Schleife mit
For Each s In ActiveDocument.Sentences
In jedem Schleifendurchgang wird die Variable s mit einem weiteren Satz des Dokuments gefüllt.
In der Schleife wird zunächst der Satzzähler um 1 erhöht.
Dann wird die Variable numWords hochgezählt:
numWords = numWords + s.Words.Count
Dabei spielt unser Range-Objekt s eine wichtige Rolle. Mit Words.Count zählt das Makro die in s enthaltenen Wörter und addiert sie zum bisherigen Stand von numWords.
Mit Next startet der nächste Schleifendurchlauf.
Sobald alle Sätze des Dokuments durchgezählt sind, verlässt das Programm die Schleife.
MsgBox zeigt schließlich das Ergebnis an. Dabei werden im Ergebnis zunächst mit Int alle Nachkommastellen abgeschnitten und dann das Ergebnis mit Str als Zeichenkette formatiert ausgegeben. Für das Ergebnis selbst teilen wir die Anzahl der Wörter durch die Anzahl der Sätze.
Das Beispielmakro ausführen
Klicken Sie im Makro-Editor auf Ausführen – Sub/UserForm ausführen.
Das Makro startet dann und liefert entweder das Ergebnis oder eine Fehlermeldung.
Falls eine Fehlermeldung erscheint, klicken Sie darin auf Hilfe, um eine genauere Erläuterung zu erhalten. (In den meisten Fällen handelt es sich um Tippfehler.)
Falls Sie ein Makro häufig verwenden wollen, weisen Sie dem Makro eine Tastenkombination zu.