Vor Excel 2007 verwendeten VBA-Programmierer das CommandBar-Objekt zum Erstellen benutzerdefinierter Menüs, Symbolleisten und Kontextmenüs (Rechtsklick). Ab Excel 2007 befindet sich das CommandBar-Objekt an einer etwas ungewöhnlichen Stelle. Wenn Sie Code schreiben, um ein Menü oder eine Symbolleiste anzupassen, fängt Excel diesen Code ab und ignoriert viele Ihrer Befehle. Stattdessen werden Anpassungen in das allgemeine Multifunktionsleisten-Registerblatt namens Add-Ins abgelegt.
Menü- und Symbolleistenanpassungen landen in der Gruppe Add-Ins → Menübefehle oder Add-Ins → Benutzerdefinierte Symbolleisten. Da das Anpassen von Kontextmenüs (das weiterhin das CommandBar-Objekt verwendet) jedoch noch funktioniert, bleiben diese Anpassungen anwendbar.
Hinzufügen eines neuen Elements zum Zellen-Kontextmenü
Im Folgenden finden Sie Beispielcode, der dem Kontextmenü, das angezeigt wird, wenn Sie mit der rechten Maustaste auf eine Zelle klicken, ein neues Element hinzufügt. Sie können diesen Beispielcode an Ihre Bedürfnisse anpassen.
Sie können das Dienstprogramm „Groß-/Kleinschreibung ändern“ verbessern, indem Sie es über das Kontextmenü der Zelle verfügbar machen.
Code |
Beschreibung |
Sub AddToShortCut()
Dim Bar As CommandBar
Dim NewControl As CommandBarButton
DeleteFromShortcut
Set Bar = Application.CommandBars("Cell")
Set NewControl = Bar.Controls.Add(Type:=msoControlButton, ID:=1, Temporary:=True)
With NewControl
.Caption = "&Groß-/Kleinschreibung ändern"
.OnAction = "ChangeCase"
.Style = msoButtonIconAndCaption
End With
End Sub |
Dies fügt ein neues Menüelement hinzu, das beim Rechtsklick auf eine Zelle angezeigt wird. |
Wenn Sie ein Kontextmenü ändern, bleibt diese Änderung wirksam, bis Sie Excel neu starten. Die geänderten Kontextmenüs werden nicht zurückgesetzt, wenn Sie die Arbeitsmappe schließen, die den VBA-Code enthält. Daher sollten Sie immer auch einen Code zur Rückgängigmachung Ihrer Änderungen schreiben.
Die DeleteFromShortcut-Prozedur entfernt das neue Menüelement aus dem Zellen-Kontextmenü:
Sub DeleteFromShortcut()
On Error Resume Next
Application.CommandBars("Cell").Controls("Groß-/Kleinschreibung ändern").Delete
End Sub
Das folgende Bild zeigt das aktualisierte Zellen-Kontextmenü mit dem neuen Menüelement:
Die Änderungen speichern
Um das Kontextmenüelement beim Öffnen der Arbeitsmappe hinzuzufügen und es beim Schließen zu löschen, fügen Sie die folgenden beiden Ereignisprozeduren in das Codemodul ThisWorkbook hinzu:
Private Sub Workbook_Open()
AddToShortCut
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
DeleteFromShortCut
End Sub
Was ist anders in Excel 2013 und Excel 2016?
Eine wesentliche Änderung in Excel 2013 und 2016 ist, dass die Änderungen am Kontextmenü nur für das aktive Arbeitsmappenfenster gelten. Wenn Sie also ein Kontextmenü geändert haben, wird dieses nicht mehr global auf alle Arbeitsmappen angewendet, sondern nur auf die derzeit aktive.
Erstellen Sie benutzerdefinierte Kontextmenüs in Access 2007
Schritt 1: Erstellen Sie eine Makrogruppe
Erstellen Sie eine Makrogruppe, wobei jedes Makro ein separater Befehl in Ihrem Kontextmenü ist. Hier einige Schritte, um dies zu tun:
- Klicken Sie im Menü "Erstellen" auf "Makro".
- Fügen Sie Befehle in Ihrer Makrogruppe hinzu.
Schritt 2: Erstellen eines Menüs
Um das Menü zu erstellen, das die oben genannten Makros verwendet, erstellen Sie ein weiteres Makro mit der Aktion AddMenu.
Schritt 3: An ein Steuerelement anhängen
Das Menü kann an ein Formular, einen Bericht oder ein Steuerelement angehängt werden, indem der Name des Makros im Eigenschaftsblatt angegeben wird.
Für weitere Informationen zu Techniken zur Multifunktionsleistenanpassung, wie dem Hinzufügen benutzerdefinierter Registerkarten, besuchen Sie unseren Artikel Erstellen einer benutzerdefinierten Multifunktionsleiste in Access.
Ralf W. -
Ich bin begeistert! Eigentlich sollte ich das schon längst gewusst haben. Danke für diese wertvollen Informationen
Lara S. -
Ich benutze Excel täglich, aber die Anpassung von Kontextmenüs war mir bisher entgangen. Danke für die wertvollen Infos
David K. -
Kann ich diese Anpassungen auch für andere Office-Anwendungen verwenden, wie Word oder PowerPoint? Es wäre toll, alles zu personalisieren
Gerd L. -
Danke für die großartige Anleitung! Hast du auch Tipps, wie man sein VBA-Setup weiter optimieren kann
Marie C. -
Ich fühlte mich am Anfang überfordert mit VBA. Aber dank deiner Erklärung habe ich Vertrauen gewonnen. Danke!
Erik K. -
Tolle Tipps! Ich habe es bereits mit einem einfachen Makro ausprobiert. Jetzt arbeite ich daran, es noch weiter zu verbessern.
Tommy123 -
Ich wusste nicht, dass man die Kontextmenüs in Excel so einfach anpassen kann. Gibt es auch weitere Tipps zu VBA?
Sophie Diesel -
Das ist goldwert! Ich werde es gleich ausprobieren und freue mich auf die Ergebnisse. Danke für den tollen Beitrag!
Stefanie R. -
Ich liebe es, wie kreativ man mit Excel sein kann. Habt ihr schon mal Spaß-Makros erstellt, die auch das Arbeiten erleichtern?
Philipp K. -
Hat jemand von euch Erfahrungen mit der Anpassung von Kontextmenüs gemacht? Ich würde gerne wissen, wie ihr das umgesetzt habt
Conny100 -
Wow, das ist eine echte Entdeckung für mich! Ich bin gespannt, wie es funktioniert und ob es meine Arbeit erleichtert
Fiona F. -
Cooler Artikel! Ich teile ihn mit meinen Kollegen. Wir sind alle ständig auf der Suche nach praktischen Excel-Tipps
Linda B. -
Bist du auch so begeistert von VBA? Ich finde, das ist eine der besten Möglichkeiten, Zeit in Excel zu sparen
Hannah L. -
Die Möglichkeit, Kontextmenüs anzupassen, ist einfach großartig! Ich danke dir für die Inspiration
Daniel D. -
Habe diesen Artikel geteilt, weil ich finde, dass jede(r) Excel-Anwender(in) davon profitieren kann. Gute Arbeit!
Veronika G. -
Ich bin total begeistert von deinen Erklärungen! Können wir diese Tipps auch für Online-Excel-Versionen nutzen
Klaus W. -
Ich habe diese Technik schon ausprobiert. Es hat mir wirklich geholfen, meine Arbeitsabläufe zu beschleunigen. Top!
Florian_87 -
Witzige Sache: Ich habe ein Kontextmenü erstellt, das mir Kaffee rezepte zeigt. VBA macht Spaß
Lisa Peters -
Ich habe das Gefühl, dass ich mit diesem Wissen etwas ganz Neues mit Excel anfangen kann. Freue mich auf mehr
Nico123 -
Ich habe gerade mit dem Programmieren in VBA angefangen, und diese Tipps sind sehr hilfreich. Ich kann es kaum erwarten, mehr zu lernen
Markus T. -
Ich suche nach einer Möglichkeit, einige Standardbefehle im Kontextmenü zu entfernen. Kann jemand helfen