Categories Word

Einführung in VBA für MS Word: Wie man Microsoft Word mit VBA und Makros erweitert.

person sitting front of laptop
Photo by christinhumephoto on Unsplash

In diesem Artikel wird erläutert, wie VBA und Makros in Microsoft Word verwendet werden können, um Text hinzuzufügen, zu ändern und zu formatieren.

Einführung

Microsoft Word bietet eine hervorragende Umgebung für die Bearbeitung, Textverarbeitung und Dokumentenverwaltung. Es gibt jedoch immer Raum für Verbesserungen und Erweiterungen, und Microsoft hat über die Visual Basic for Applications-Umgebung Möglichkeiten zur Makroentwicklung bereitgestellt.

In diesem Artikel befassen wir uns mit den verfügbaren Mechanismen und lösen gleichzeitig eines der Probleme, die Webautoren häufig mit Word haben – die Handhabung von HTML. Webautoren bearbeiten HTML oft gerne als reinen Text in Word und fügen ihn dann per Cut-and-Paste in WordPress, Blogger oder eine andere Online-Redaktionsumgebung ein.

Auf diese Weise profitieren wir von den hervorragenden Wörterbuchfunktionen, der Rechtschreibprüfung und dem Thesaurus. Da die manuelle Eingabe von Tags mühsam und zeitaufwändig sein kann und das Speichern des Dokuments als HTML in Word dazu führt, dass alle möglichen unnötigen Tags eingefügt werden, wenn es von seinem eigenen internen Format konvertiert wird.

Die Lösung? Verwenden Sie Makros, um sich die Arbeit zu erleichtern, und speichern Sie alles als einfachen Text. Natürlich kann auch das Ändern der Dateierweiterung für den Upload ein Ärgernis sein, aber das werden wir an anderer Stelle lösen. Für den Moment nehmen wir an, dass wir nur in der Lage sein müssen, Texte aus Word auszuschneiden und in eine Online-Bearbeitungsumgebung einzufügen.

Bearbeiten von VBA-Makros

Wie Excel und andere Office-Anwendungen wird auch VBA mit dem Microsoft Visual Basic Editor bearbeitet. Der Zugriff erfolgt über das Hauptmenü (Werkzeuge->Makro->Visual Basic Editor) oder durch einfaches Drücken der Tasten Alt+F11.

Makros können an das Dokument, die globale Vorlage (Normal genannt) oder eine bestimmte Vorlage angehängt werden. Da es viele verschiedene Ansätze für die Organisation von Code in Office-Anwendungen gibt, gehen wir davon aus, dass wir den Code in die Vorlage “Normal” einfügen und ihn somit für Word global verfügbar machen.

Der einfachste Weg, eine neue Sammlung von Makros zu beginnen, ist, sie in einem Modul zu platzieren. Um dies zu tun:

  • Öffnen Sie den VBA-Editor (Alt+F11);
  • Erweitern Sie das Objekt Normal (in der Projektstrukturansicht);
  • Klicken Sie mit der rechten Maustaste auf den Ordner Module;
  • Wählen Sie Einfügen->Modul…

Das neue Modul erhält einen Namen (z. B. Modul1), den Sie zunächst ändern müssen. Dies geschieht im Blatt Eigenschaften unterhalb der Projektstrukturansicht. Der (Name) sollte auf einen aussagekräftigeren Wert gesetzt werden, z. B. InsertHTML.

Wir geben den Code in das Fenster auf der rechten Seite der VBA-Bearbeitungsumgebung ein. Der Code ist in Unterblöcken organisiert:

Sub myMacro
‘ Code-Block
End Sub

Diese Codeblöcke können an Symbolleisten angehängt werden, die angedockt oder frei beweglich sein können, und werden vollständig von Word verwaltet. Dies ist eine sehr flexible und leistungsstarke Funktion, zu der wir kommen werden, sobald wir ein Makro in der Hand haben.

Bedingtes Einfügen von Text

In Word ist es einfach, Text mit Hilfe eines Makros einzufügen. Die übliche Methode hierfür ist die Verwendung des Objekts “Auswahl”:

Selection.TypeText (“Text zum Einfügen”)

Wenn nichts ausgewählt ist, wird der Text einfach eingefügt, aber wenn ein Text hervorgehoben ist, wird er von Word ersetzt. Mit dieser Funktion können wir bedingt Text einfügen oder den Text ändern. Wir können zum Beispiel eine Textzeile in eine Überschrift verwandeln, indem wir sie fett markieren.

Dazu müssen wir mehrere Schritte durchführen:

  • Ist die Auswahl leer?
  • Wenn ja, dann fügen Sie einfach die Tags hinzu…
  • …andernfalls speichern Sie den Text und fügen die Tags um ihn herum hinzu.

Um zu prüfen, ob eine leere Auswahl vorliegt, verwenden wir den folgenden Code:

If Selection.Text <> “” Then
‘ Code hier einfügen
End If

Wir können jeden Text, der markiert ist, vorübergehend speichern, indem wir verwenden:

szTempText = Auswahl.Text

Um HTML-Tags um einen Text herum zu platzieren, benötigen wir folgenden Code:

Auswahl.TypeText (“<B>”)
Auswahl.TypeText (szTempText)
Auswahl.TypeText (“</B>”)

Das Zusammensetzen des Ganzen ist eine Übung für den Leser, aber hier ist das Grundgerüst des Codes:

Sub MakeHTMLBold()
If Selection.Text <> “” Then
‘ Ausgewählten Text speichern
‘ Code zum Einfügen des Start-Tags
‘ Gespeicherten Text einfügen
‘ Code zum Einfügen des End-Tags
Else
‘ Code zum Einfügen nur des Start- und End-Tags
End IfEnd
Sub

Durch Einfügen der entsprechenden Selection.-Methoden sollte das Makro nutzbar gemacht werden.

Bester VBA-Tipp!

  • Wenn Sie sich nicht sicher sind, ob Sie einen bestimmten Befehl verwenden sollen, können Sie einfach ein Dummy-Makro aufzeichnen und den Code ausschneiden und einfügen. Wählen Sie einfach Werkzeuge->Makro->Neues Makro aufzeichnen, führen Sie die gewünschten Operationen aus, stoppen Sie die Aufzeichnung und fügen Sie dann den resultierenden Code aus und ein!

Erstellen einer Schaltflächenleiste

Wenn wir unser Makro in der Hand haben, brauchen wir eine Möglichkeit, es über Word aufzurufen. Der einfachste und benutzerfreundlichste Weg ist das Hinzufügen einer Symbolleiste (auch bekannt als Schaltflächenleiste). Die Optionen dafür sind im Menü Extras->Anpassen… verfügbar.

Daraufhin öffnet sich ein kleines Dialogfeld. So fügen Sie eine neue Symbolleiste hinzu:

  • Wählen Sie die Registerkarte Symbolleisten;
  • Klicken Sie auf die Schaltfläche Neu;
  • Befolgen Sie die Anweisungen.

Die neue Symbolleiste ist noch leer. Um Elemente hinzuzufügen, müssen sie aus dem Dialogfeld auf die Symbolleiste gezogen werden. Alle verfügbaren Befehle befinden sich auf der Registerkarte Befehle. Unsere benutzerdefinierten Makros sollten auch dort zu finden sein:

  • Wählen Sie in der linken Listbox Makros aus;
  • Suche nach Makros, deren Namen mit Normal. module beginnen;
  • Ziehen Sie Normal.InsertHTML.MakeHTMLBold auf die Symbolleiste und legen Sie es dort ab.

Für diejenigen, die den hier verwendeten Modul- und/oder Subnamen nicht folgen, müssen die entsprechenden Modul- und Subnamen ersetzt werden.

Anpassen von Schaltflächen

Führen Sie die folgenden Schritte aus, um die Schaltflächen anzupassen:

  • Klicken Sie mit der rechten Maustaste auf die Symbolleiste;
  • Wählen Sie Anpassen…;
  • Lassen Sie das Dialogfeld geöffnet, und klicken Sie mit der rechten Maustaste auf das Element, das Sie anpassen möchten;
  • Wählen Sie die entsprechende Option und folgen Sie den Anweisungen!

Es gibt viele Optionen, von der Namensgebung bis zum Hinzufügen von Schaltflächenbildern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert