Eigene Icons/Symbole zum Menüband hinzufügen

Wie man das Menüband individuell gestalten und um eigene Register und Sektionen erweitert kann, wurde vor einiger Zeit im Beitrag "Makro als Add-In einbetten" illustriert. Für die gewünschten Funktionen gibt es diverse Standard-Symbole, die man verwenden kann. Dies ist eine Übersicht:

StandardIcons

Je nach Anwendungsfall lässt sich jedoch kein passendes Bild finden - oder man strebt grundsätzlich eine komplett eigene Lösung an. Hier wird dargestellt, wie ein selbst erstelltes Symbol eingefügt werden kann: Die Bilddatei sollte im Format .png und quadratisch sein. Da es kleine Icons sind, sollten die Masse nicht über 256x256 Pixel sein. Ich habe ein Bild in Photoshop mit den Massen 100x100 Pixel erstellt und lokal abgespeichert:

ArrowPlus10

Die Funktion, die über dieses Symbol abgerufen werden soll, ist eine Erhöhung des selektierten Wertes um 10%. Um dieses Beispiel zu illustrieren, habe ich eine simple Umsatzplanung für das nächste Jahr erstellt:

Umsatzplanung2020

Es soll über die angesprochene Funktion entweder die aktuelle Menge oder der jetzige Preis um 10% erhöht werden, da sich der Umsatz ohnehin aus Preis * Menge zusammensetzt. Um dies zu bewerkstelligen, legst Du folgendes Makro an:

Sub IncreaseBy10Percent()

Dim CurrentValue As Double
Dim NewValue As Double

CurrentValue = ActiveCell.Value
NewValue = CurrentValue * 1.1
ActiveCell = NewValue

End Sub

(Beachte: Es sind keinerlei Kontrollen und Sicherheiten eingebaut. Es wird nicht überprüft, welcher Wert in der selektierte Zelle steht oder ob gar ein Bereich ausgewählt wurde - das kann zu Fehlermeldungen führen!)

Office RibbonX Editor

Um das Custom-Icon einzufügen, verwenden wir die Software "Office RibbonX Editor" (analog "Custom UI Editor"). Es handelt sich dabei nicht um ein Microsoft Produkt. Fernando Andreu hat das Tool auf GitHub zur Verfügung gestellt (hier geht es zur Release-Seite).

Nach dem Öffnen der Datei ist das gewünschte Excel-File auszuwählen (File → Open). Daraufhin fügen wir - je nach Excel-Version - einen "Custom UI Part" ein (ich verwende "Office 2010+"). Dies erfolgt via Rechtsklick auf die Excel-Datei im Editor:

InsertCustomUiPart

Als nächstes ist die erstellte Grafik einzufügen. Gehe dazu auf "Insert Icons". Wie im Screenshot unten ersichtlich ist das Icon ebenfalls innerhalb des Editors auf der linken Seite (Navigation) aufgeführt. Der fertige Code, um das entsprechende Icon ("ArrowPlus10.png") in ein neues Menüband-Register "Eigene Makros" und der Sektion "Umsatzplanung" einzubetten, ist unten dargestellt. Am Ende dieses Beitrags ist zudem der Code als "Zitat" zu finden - für Copy+Paste-Zwecke. Nach einer Anpassung in dem Editor kannst Du jederzeit auf "Validate" klicken, um den Code zu testen. Speichere die Änderungen im Editor ab ("Save") und öffne das Excel-File erneut.

RibbonXCode

Die obigen Bezeichnungen wie "Menüband-Register" oder "Sektion" können individuell ausgestaltet werden. Auch die Anordnung/Reihenfolge des Menübands kann hier beeinflusst werden (in Zeile 4: "insertAfterMso="). Im fertigen Screenshot unten habe ich unser eigenes Register hinter "TabHome" eingefügt, damit es auf der Abbildung besser ersichtlich ist:

RibbonSolution

Ein Klick auf diesen individuell gestalteten "Button" erhöht daraufhin den selektierten Wert wie gewünscht um 10%.

Dies ist der Code für den "Custom UI Part":

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab id="customTab" label="Eigene Makros" insertAfterMso="TabHelp">

<group id="customGroup" label="Umsatzplanung">
<button id="customButton1" label="Erhöhe Wert" size="large" onAction="IncreaseBy10Percent" image="ArrowPlus10" />

</group>
</tab>
</tabs>
</ribbon>
</customUI>

Makro als Add-In einbetten

Wir haben uns in diesem früheren Beitrag (Suchmaschine programmieren) schon angeschaut, wie man bei einem Objekt (beispielsweise einem Textfeld) ein Makro hinterlegen kann – damit dieses quasi als Knopf dient, um das Programm zu starten. Ich erläutere hier, wie man ein sogenanntes Add-In erstellen kann und dieses Makro dann über Symbole in der Menüleiste aufrufen kann.

Als erstes musst Du Dein Makro aufzeichnen/programmieren. Du verwendest möglicherweise den Makro-Rekorder (wie in diesem Beitrag erklärt) und gelangst mittels "Alt+F11" in die Makro-Umgebung, wo Du auch Dein Makro findest. Sobald alles passt und die richtigen Befehle ausgeführt werden, speichere Deine Excel-Tabelle ab als "Add-In"-Datei (.xlam):

AddInDatei

Daraufhin schliesst Du sämtliche Excel-Mappen und öffnest Excel erneut – so werden im Hintergrund sämtliche Add-Ins geladen.

Du musst nun das Add-In lokalisieren und in Excel aktivieren:

Im Menüband auf Datei → Optionen → Add-Ins und unten auf "Gehe zu" klicken. Daraufhin durchsuchst Du Dein Laufwerk nach dem abgelegten Add-In:

AddInLokalisieren

Danach kannst Du mit einem Rechtsklick auf die Menüleiste oben "Menüband anpassen" selektieren. Als erstes kannst Du auf der rechten Seite eine neue, eigene Sektion erstellen. Klicke dazu auf "neue Registerkarte" und benenne diesen zum Beispiel mit "Makros" (Rechtsklick auf die erstellte Registerkarte → "Umbenennen"). Die darin enthaltene Gruppe musst Du ebenfalls benennen – ich nehme hier "Tätigkeit1". Falls Du auf mehrere Makros schnell zugreifen willst, würde ich weitere Gruppen ("Tätigkeit2", "Tätigkeit3", ...) anlegen. Das sieht dann so aus:

BenutzerdefinierteGruppe

Als nächstes suchst Du auf der linken Seite bei "Befehle auswählen" in der Rubrik "Makros". Dort solltest Du Dein aufgezeichnetes Makro finden, welches Du nun der Gruppe "Tätigkeit1" zuteilen kannst. Stelle sicher, dass Du die Gruppe im rechten Abschnitt grau markiert hast und klicke dann in der Mitte auf "Hinzufügen", um das Makro der Gruppe zuzuordnen. Nun hast Du Dein Add-In in Deinem eigenen Menüpunkt jederzeit schnell zur Hand! Innerhalb der Gruppe bei "Menüband anpassen" kannst Du via Rechtsklick → "Umbenennen" auch noch das Symbol des Makros anpassen:

ButtonUmbenennen

Das Add-In kann auch an andere Personen übertragen werden, diese müssen es wiederum unter Datei → Optionen --> Add-Ins lokalisieren und in ihre Menüleiste mitaufnehmen.