Excel Makro-Add-in mit Menüband-Icon erstellen und weitergeben
Microsoft Excel® hat mit seinem Makrorekorder einen einfache Möglichkeit geschaffen immer wiederkehrende Arbeitsschritte ohne Programmierkenntnisse zu automatisieren und als Makro abzuspeichern. Dieses lässt sich dann auch mit einem Symbol (Icon) in dem Menüband (Ribbon) in einer neuen Gruppe oder in einem neuen Reiter zuordnen und leicht aufrufen Microsoft (Support).
Problematischer wird es, wenn man es mit dem Menübandsymbol gerne weitergeben oder auf einem Netzlaufwerk mehreren Anwendern zur Verfügung stellen will. Wie man das macht, zeigt dieses How-To.
Entwicklertools-Reiter einblenden: Wir benötigen hier den Zugriff auf die Makro-Funktionalität von Excel. Diese hat einen eigenen Reiter im Menüband. Dieser ist allerdings standardmäßig ausgeblendet. Wahrscheinlich hast du ihn schon eingeblendet. Wenn nicht, im Microsoft Support-Bereich wird gezeigt, wie man den Reiter „Entwicklertools“ einblenden kann. Das nachfolgende How-to benötigt dies aber nicht, kann aber die Arbeit beschleunigen, da es direkten Zugriff zu den Dialogen Excel-Add-Ins, Visual Basic und Makros ermöglicht.
Makro und Basis Add-In erstellen
Zuerst zeichnet man ein Makro mit dem Makrorekorder auf oder schreibt es im Visual-Basic-Editor und speichert das Makro in der aktuellen Arbeitsmappe als Excel-Add-In (*.xlma)-Datei ab, z.B. MeinMacro.xlma.
Excel schlägt dann automatisch den Pfad C:\Users\[Benutzername]\AppData\Roaming\Microsoft\AddIns vor. Das kann man erstmal bestätigen.
Dann öffnen man den Visual-Basic-Editor mit ALT-F11. Sucht das Makro im entsprechenden VBA-Projekt im Ordner Module.
Es heißt standardmäßig Modul1 und man öffnet es mit Doppelklick. Es sieht dann etwas so aus:
Sub MeinMacro() ' ' MeinMacro Makro ' ' ... End Sub
Wenn man dem Makro ein Symbol im Menüband zuordnen will, muss man dem Aufruf den Parameter ByVal control As IRibbonControl mitgeben:
Sub MeinMacro(ByVal control As IRibbonControl) ' ' MeinMacro Makro ' ' ... End Sub
Das wiederholt man bei allen Makros und speichert die Änderung im Visual-Basic-Editor. Den Visual-Basic-Editor und auch Excel sollte man danach schließen.
Jetzt hat man bereits ein Excel Add-In erstellt. Um den oder die darin enthaltenen Makros aufzurufen, muss man Sie noch einem oder mehreren Symbolen im Menüband zuweisen.
Menüband-Symbolaufruf konfigurieren
Excel-Symbole als Icons verwenden
Um das oder die Makros mittels Symbolen im Menüband auszuführen und in der Add-in-Datei zu speichern, kann man sich vom Programm OfficeRibbonXEditor unterstützen lassen, die du als ausführbares Programm in GitHub im Bereich Releases/Assets herunterladen kannst. EXE-Distributionen enthalten eine Installer, ZIP-Distros kann man nach dem Auspacken ohne Installation nutzen. Ob du NETCore oder NETFramework verwendest, spielt keine entscheidende Rolle. Ggf. musst du Laufzeitbibliotheken herunterladen. Ich habe die NETCore-Variante gewählt und die fehlende Laufzeitbibliothek wurde beim Start automatisch heruntergeladen und installiert.
- Starte den OfficeRibbonXEditor und öffne deine Add-In xlma-Datei. Du solltest sie unter %APPDATA%\Microsoft\AddIns finden, dazu einfach den gerade genannten Pfad in die Adressleiste des Öffnen-Dialogs eingeben und RETURN drücken.
- Im linken Listenbereich klickst du mit der rechten Maustaste auf deine xlma-Datei und wählst Insert Office 2010+ Custom UI Part, wenn du das Add-In für Excel 2010 oder höhere Versionen erstellen willst oder Insert Office 2007 Custom UI Part für Excel 2007. Man kann auch ein Add-In für alle unterstützten Versionen erstellen, indem man beide CustomUIs einfügt und den XML-Code in beide kopiert. Sie unterscheiden sich nur in der Definition:
2010+ => customUI14.xml: xmlns=“http://schemas.microsoft.com/office/2009/07/customui“
2007 => customUI.xml: xmlns=“http://schemas.microsoft.com/office/2006/01/customui“
- Man importiert jetzt den XML-Code. Beispiele findet man im Menü Insert>Sample XML. Wir wählen hier Custom Tab, d.h. wir erstellen einen neuen Reiter im Menüband für unser Makrosymbol:
- Man passt jetzt den importieren Beispiel-XML-Code von
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon startFromScratch="false"> <tabs> <tab id="customTab" label="Custom Tab"> <group id="customGroup" label="Custom Group"> <button id="customButton" label="Custom Button" imageMso="HappyFace" size="large" onAction="Callback" /> </group> </tab> </tabs> </ribbon> </customUI>
zu z.B.:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon startFromScratch="false"> <tabs> <tab id="meinemakros" label="Meine Makros"> <group id="gruppe1" label="Gruppe 1"> <button id="meinbutton" label="Mein Makro" imageMso="HappyFace" size="large" onAction="MeinMacro" /> </group> </tab> </tabs> </ribbon> </customUI>
an. Die Änderungen sind fett formatiert.
tab id Eindeutiger ID-Name für den Reiter (keine Leerzeichen/Sonderzeichen), intern tab label Name des Reiters (erscheint im Menüband) group id Eindeutiger ID-Name für die Symbolgruppe group label Name der Symbolgruppe (erscheint im Menüband im Reiter) button id Eindeutiger ID-Name für den Symbolbutton button label Name des Symbolbuttons/Icons (steht unter dem Symbol) imageMso ID des Symbolbildes (Icons). Eine Auflistung findet man unter bert-toolkit.com Achte auf Groß- und Kleinschreibung. Eigene Symbole können auch verwendet werden, s.w.u. onAction Name des Macros, das im VBE hinter Sub steht ohne Klammern. (hier: MeinMacro) Die Bereiche tab, group und button können natürlich, je nach Anzahl und Organisation der Makros, öfter vorkommen.
- Im OfficeRibbonXEditor auf das Symbol Validate klicken, um den XML-Code zu prüfen. Kommt keine Fehlermeldung, kann man das Add-In speichern (Datei>Save Current Document).
Die nun abgespeicherte xlma-Datei, MeinMacro.xlma, kann man jetzt per E-Mail verschicken oder auf einem Netzlaufwerk für mehrere Anwender freigeben. Diese müssen es nur noch installieren. Auch du musst das Add-Inn noch aktivieren um es zu nutzen.
Eigene Symbole als Icons verwenden
Man geht genauso vor, wie unter Excel-Symbole als Icons verwenden beschrieben. Folgende Schritte führt man noch zusätzlich aus:
- Erstelle eine oder mehrerer quadratische PNG-Dateien, um sie als Symbole/Icons zu verwenden, zum Beispiel 100×100 Pixel (nicht mehr als 256×256 px).
- Im OfficeRibbonXEditor klickt man mit der rechten Maustaste auf customUI(14).xml im linken Bereich und wählt Insert Icons und wählt das oder die erstellten PNG-Symboldateien (Icons) aus.
- Ändere im XML-Code in der <button> Zeile imageMso zu image und füge den Dateinamen des Symbols ohne Dateiendung nach dem Gleich-Zeichen in Anführungsstrichen hinzu. D.h. wenn deine Symboldatei MeinIcon.png heißt, trage image=“MeinIcon“ ein und lösche den imageMso-Eintrag. Achte auf Groß- und Kleinschreibung.
<button id="meinbutton" label="Mein Macro" image="MeinIcon" size="large" onAction="MeinMacro" />
- Wiederhole den letzten Punkt für alle Buttons und speichere das fertige Add-In. Es ist für die Verteilung und Installation bereit.
Installation des Add-Ins
- Zuerst sollte man die xlma-Datei unseres Add-Ins in einem Ordner auf dem lokalen Computer oder einer Netzwerkfreigabe speichern. Diesen sollte man nicht verschieben oder umbenennen. Der beste Platz auf dem lokalen Computer ist %APPDATA%\Microsoft\AddIns. Dazu einfach den gerade genannten Pfad in die Adressleiste des Windows Explorers eingeben und RETURN drücken.
- Starte Excel und klicke im Menü auf Datei>Optionen. In der linken Liste des Optionen-Dialogs wähle Add-Ins und klicke rechts unten auf Verwalten: Excel-Add-Ins und dann auf Los… oder – falls eingeblendet – im Reiter Entwicklertools in der Gruppe Add-Ins auf Excel-Add-Ins.
- Im Dialog Add-Ins muss man unser Add-In nur noch aktivieren. Befindet sich das Add-In nicht im o.g. Ordner, z.B. auf einer Netzwerkfreigabe, muss man es mit einem Klick auf Durchsuchen… erst laden und dann aktivieren.
Dann OK klicken und das Add-In mit dem oder den Makros mit dem neuen Menübandreiter sollte sichtbar sein.
Add-In löschen
Um das Add-In wieder zu entfernen, gibt es leider keinen direkten Menübefehl. Es müssen mehrere Schritte im Windows Explorer und Excel durchgeführt werden:
- In Excel im Menü auf Datei>Optionen in der linken Liste des Optionen-Dialogs wähle Add-Ins und klicke rechts unten auf Verwalten: Excel-Add-Ins und dann auf Los… oder – falls eingeblendet – im Reiter Entwicklertools in der Gruppe Add-Ins auf Excel-Add-Ins.
- Im Dialog Add-Ins muss man das zu löschende Add-In deaktivieren.
- Jetzt die Add-In Datei, hier MeinMacro.xlma, im Windows Explorer löschen.
- Nach Excel wechseln und wieder in den Dialog Add-Ins gehen und auf den Eintrag unseres gelöschten Add-Ins klicken, hier Meinmacro, und die folgenden Meldung mit Ja bestätigen und dann auf OK klicken.
Interessante Links und Quellen
- Microsoft Support: Manuelles Zuweisen eines Makros zu einer Schaltfläche
- Linearis.at: Excel 2010 Add-In mit eigenem Ribbon erstellen
- Excelblog.ch: Eigene Icons/Symbole zum Menüband hinzufügen
- Microsoft Docs: Erstellen von VBA-Add-Ins zum Erweitern und Automatisieren von Microsoft Office-Dokumenten
- CodeDocu.de: Erstellen einer Ribbonbar Buttons für ein vba Excel Addin
- BERT: List of imageMSO values and associated pictures
- Marco Krapf: Anleitung zur Installation und Aktivierung eines Excel Add-ins