Word: Dokument mit Ribbon und VBA-Funktionen

Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!

Nicht jeder, der seine Word-Dokumente mit ein paar zusätzlichen VBA-Funktionen ausstatten möchte, will direkt ein COM-Add-In dafür programmieren. Das ist auch nicht nötig, denn wir können solche Funktionen auch einfach zu einem Word-Dokument hinzufügen und die Funktionen in einem integrierten Ribbon verfügbar machen. Wie das gelingt, zeigen wir an einem einfachen Beispiel. Dabei wollen wir das aktuelle Dokument als PDF-Dokument in das gleiche Verzeichnis wie das Dokument exportieren. Einem zweiten Ribbonbefehl fügen wir noch einen Schritt hinzu, der das frisch erstellte PDF-Dokument direkt in die Zwischenablage kopiert, damit es beispielsweise gleich in eine E-Mail eingefügt werden kann.

Wenn Du eine VBA-Funktion programmiert hast, die Du dauerhaft in einem Word-Dokument verfügbar machen willst, gibt es verschiedene Möglichkeiten. Die VBA-Funktion zum Dokument hinzuzufügen, ist schnell erledigt: Du öffnest per Alt + F11 den VBA-Editor, wechselst dort zum VBA-Projekt dieses Word-Dokuments und öffnest das VBA-Modul ThisDocument.

Hier können wir direkt eine Prozedur wie in Bild 1 hinzufügen und ausführen.

Anlegen einer VBA-Prozedur für das aktuelle Dokument

Bild 1: Anlegen einer VBA-Prozedur für das aktuelle Dokument

Nun möchtest Du nicht immer in den VBA-Editor wechseln, um die Funktion aufzurufen, sondern diese gegebenenfalls direkt vom Ribbon aus oder über ein Kontextmenü starten. Das Anlegen eines entsprechenden Ribbon-Eintrags ist nicht besonders aufwendig und dieser kann auch mit dem aktuellen Dokument gespeichert werden.

Ein Kontextmenü können wir nur mit VBA anlegen, aber auch dies schauen wir uns später an.

Zunächst wollen wir die Funktion per Ribbonbefehl verfügbar machen. Dazu verwenden wir ein separates Tool, mit dem wir das Dokument öffnen. Also müssen wir das Dokument zunächst schließen.

Beim Schließen erscheint jedoch der Hinweis, dass der enthaltene VBA-Code nur gespeichert werden kann, wenn wir das Dokument mit dem Typ Word-Dokument mit Makros (.dotm) speichern, was wir direkt erledigen.

Ribbon-Eintrag hinzufügen

Den Ribbon-Befehl wollen wir in einem eigenen Tab unterbringen, das die Beschriftung Mein Dokument erhalten soll. Darin fügen wir eine Gruppe ein, die schließlich eine Schaltfläche zum Aufrufen unseres noch zu erstellenden VBA-Befehls enthält.

Um dem Dokument die dafür notwendige Ribbon-Definition hinzuzufügen, nehmen wir ein Tool namens Office RibbonX Editor zu Hilfe, das wir hier herunterladen können (sollte der Link nicht mehr verfügbar sein, hilft eine Suche nach dem Produktnamen):

https://github.com/fernandreu/office-ribbonx-editor/releases/tag/v1.9.0

Nach der Installation öffnen wir das Tool und öffnen das soeben angelegte Word-Dokument damit. Dieses erscheint nun in der linken Liste.

Mit einem Rechtsklick zeigen wir das Kontextmenü an, aus dem wir den Eintrag Office 2010+ Custom UI-Abschnitt einfügen auswählen (siehe Bild 2). Dies fügt einen neuen Untereintrag namens customUI14.xml zum Dokument hinzu.

Einfügen eines Custom UI-Abschnitts

Bild 2: Einfügen eines Custom UI-Abschnitts

Ein Doppelklick zeigt im rechten Bereich den Inhalt dieses Abschnitts an, den wir nun mit dem gewünschten XML-Code füllen:

<customUI xmlns="http://schemas.microsoft.com/    office/2009/07/customui">
   <ribbon>
     <tabs>
       <tab id="tab" label="Mein Dokument">
         <group id="grp" label="PDF">
           <button id="btnExportPDF" label="PDF exportieren" 
               size="large" image="PDF"               onAction="ExportPDF"/>
         </group>
       </tab>
     </tabs>
   </ribbon>
</customUI>

Damit auch noch ein hübsches Icon angezeigt wird, fügen wir dieses über den Kontextmenübefehl wie in Bild 3 hinzu.

Einfügen des Icons und des XML-Codes

Bild 3: Einfügen des Icons und des XML-Codes

Den Namen, der nun unter dem Eintrag customUI14.xml für die Ribbondefinition angezeigt wird, fügen wir für das Attribut image des button-Elements ein.

Um uns noch ein wenig die Arbeit zu erleichtern, klicken wir nun auf die Schaltfläche VBA-Methoden generieren in diesem Tool und kopieren den Inhalt aus dem nun erscheinenden Fenster Methodenbetrachter (siehe Bild 4).

Ermitteln des Codes für die Ribbon-Schaltfläche

Bild 4: Ermitteln des Codes für die Ribbon-Schaltfläche

VBA-Funktion anpassen

Damit können wir dieses Tool schließen und das Word-Dokument erneut öffnen.

 

Schreibe einen Kommentar