{"id":55000435,"date":"2024-08-01T00:00:00","date_gmt":"2024-08-14T14:45:54","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=435"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Menues_per_VBA_programmieren","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/","title":{"rendered":"Men&uuml;s per VBA programmieren"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/1cd7195146804360847f6d2cc2b51841\" width=\"1\" height=\"1\" alt=\"\"><b>Das Men&uuml;system des VBA-Editors l&auml;sst sich &uuml;ber die Benutzeroberfl&auml;che bereits einfach anpassen. Das haben wir im Artikel &#8220;Men&uuml;system im VBA-Editor anpassen&#8221; (www.vbentwickler.de\/434)  gezeigt. Au&szlig;erdem haben wir uns im Artikel &#8220;Kontextmen&uuml;s per VBA programmieren&#8221; (www.vbentwickler.de\/368) bereits angeschaut, wie wir per VBA Kontextmen&uuml;s erstellen und anpassen k&ouml;nnen. Es fehlen also noch die Informationen, wie wir die eigentlichen Men&uuml;leisten und Symbolleisten mit VBA programmieren k&ouml;nnen. Wie das gelingt, schauen wir uns im vorliegenden Artikel an. Wir zeigen, wie vorhandene Men&uuml;s angepasst und wie neue Men&uuml;s erstellt werden k&ouml;nnen. <\/b><\/p>\n<p>Warum haben wir eigentlichen einen eigenen Artikel zum Thema Kontextmen&uuml;s per VBA programmieren ver&ouml;ffentlicht und nicht direkt etwas weiter ausgeholt und die Men&uuml;- und Symbolleisten ebenfalls beschrieben? Weil es damals darum ging, die Benutzeroberfl&auml;che der Office-Anwendungen zu erweitern.<\/p>\n<p>Und da diese bekanntlich seit Office 2007 keine Men&uuml;- und Symbolleisten mehr verwenden, sondern das Ribbon, haben wir uns auf die Kontextmen&uuml;s beschr&auml;nkt.<\/p>\n<p>Das wirft nun die Frage auf, warum wir uns dann jetzt mit den Men&uuml;- und Symbolleisten besch&auml;ftigen wollen. Nun: Es gibt noch das gallische Dorf unter den Microsoft-Anwendungen, in denen noch Men&uuml;- und Symbolleisten verwendet werden.<\/p>\n<p>Dabei handelt es sich um die Anwendung, mit der wir t&auml;glich arbeiten: den VBA-Editor. Dieser verwendet noch das gute, alte Men&uuml;- und Symbolleistensystem, das j&uuml;ngere VBA-Entwickler m&ouml;glicherweise von Office selbst gar nicht mehr kennen.<\/p>\n<p>Und da wir beispielsweise mit twinBASIC den VBA-Editor erweitern wollen und das Men&uuml;system nun einmal der Hauptort zum Unterbringen von Steuerelementen zum Aufrufen der Funktionen der entsprechenden COM-Add-Ins ist, schauen wir uns nun doch noch einmal die Grundlagen zu den Men&uuml;- und Symbolleisten an.<\/p>\n<h2>Office-Verweis sinnvoll<\/h2>\n<p>Dazu ist es sinnvoll, dem VBA-Projekt erst einmal einen Verweis auf die Bibliothek <b>Microsoft Office 16.0 Object Library <\/b>hinzuzuf&uuml;gen.<\/p>\n<p>Das erledigen wir &uuml;ber den Verweise-Dialog, den wir &uuml;ber den Men&uuml;eintrag <b>Extras|Verweise<\/b> des VBA-Editors &ouml;ffnen (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_435_001.png\" alt=\"Hinzuf&uuml;gen eines Verweises auf die Office-Bibliothek\" width=\"524,6265\" height=\"413,5826\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Hinzuf&uuml;gen eines Verweises auf die Office-Bibliothek<\/span><\/b><\/p>\n<h2>Alles ist eine Symbolleiste<\/h2>\n<p>Um direkt zu Beginn eine Begrifflichkeit zu kl&auml;ren: Im Sinne von VBA sind sowohl Men&uuml;leisten, Symbolleisten als auch Kontextmen&uuml;s alles Symbolleisten, unter VBA <b>CommandBar <\/b>genannt.<\/p>\n<p>Men&uuml;leisten und Kontextmen&uuml;s unterscheiden sich nur durch bestimmte Eigenschaften von den anderen Elementen.<\/p>\n<h2>Symbolleisten durchlaufen<\/h2>\n<p>Mit der Office-Bibliothek holen wir uns das Objektmodell zum Verwalten von <b>CommandBar<\/b>-Elementen in das VBA-Projekt. <\/p>\n<p>Vom VBA-Editor aus k&ouml;nnen wir gleich zwei <b>CommandBars<\/b>-Auflistungen durchlaufen, n&auml;mlich die des VBA-Editors als auch die der jeweiligen Host-Anwendung &#8211; also beispielsweise Access, Excel, Outlook, PowerPoint oder Word.<\/p>\n<p>Die folgende Prozedur gibt zuerst alle Elemente des VBA-Editors aus (referenziert mit <b>VBE.CommandBars<\/b>) und dann die Elemente der aktuellen Host-Anwendung, hier Access (referenziert mit <b>Access.Commandbars<\/b>):<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>AlleCommandbars()\r\n     <span style=\"color:blue;\">Dim <\/span>cbr<span style=\"color:blue;\"> As <\/span>CommandBar\r\n     For Each cbr In VBE.CommandBars\r\n         <span style=\"color:blue;\">Debug.Print<\/span> \"VBA-Editor: \" & cbr.Name\r\n     <span style=\"color:blue;\">Next<\/span> cbr\r\n     For Each cbr In Access.CommandBars\r\n         <span style=\"color:blue;\">Debug.Print<\/span> \"Access: \" & cbr.Name\r\n     <span style=\"color:blue;\">Next<\/span> cbr\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Wir wollen hier besonderes Augenmerk auf die Elemente des VBA-Editors legen. Die Menge ist &uuml;berschaubar, wie Bild 2 zeigt.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_435_002.png\" alt=\"Alle Symbolleisten des VBA-Editors\" width=\"424,6267\" height=\"517,101\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Alle Symbolleisten des VBA-Editors<\/span><\/b><\/p>\n<h2>Unterscheidung der Symbolleisten nach Typ<\/h2>\n<p>Wie aber k&ouml;nnen wir nun die Men&uuml;leisten, Symbolleisten und Kontextmen&uuml;leisten voneinander unterscheiden?<\/p>\n<p>Dabei hilft uns die Eigenschaft <b>Type<\/b>. Sie liefert uns verschiedene Werte (<b>0<\/b>, <b>1 <\/b>und <b>2<\/b>). Wie finden wir heraus, welcher Wert welche Bedeutung hat? Da IntelliSense uns hier keine Hinweise gibt, schauen wir im Objektkatalog nach.<\/p>\n<p>Hier finden wir, wenn wir unter Klassen das <b>CommandBar<\/b>-Element selektieren und in den Elementen den Eintrag <b>Type<\/b>, die Information, dass es sich hierbei um die Auflistung <b>msoBarType<\/b> handelt (siehe Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_435_003.png\" alt=\"Ermitteln des Typs einer Eigenschaft\" width=\"449,6267\" height=\"506,287\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Ermitteln des Typs einer Eigenschaft<\/span><\/b><\/p>\n<p>Ein Klick auf diese Auflistung zeigt direkt die Elemente dieser Auflistung und somit die m&ouml;glichen Werte (siehe Bild 4). Klicken wir diese nacheinander an, erhalten wir die folgenden Zahlenwerte samt zugeh&ouml;rigen Konstanten plus Bedeutung:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_435_004.png\" alt=\"Ermitteln der Werte eines Eigenschaft\" width=\"424,6267\" height=\"378,0214\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Ermitteln der Werte eines Eigenschaft<\/span><\/b><\/p>\n<ul>\n<li><b>0 <\/b>(<b>msoBarTypeNormal<\/b>): Symbolleiste<\/li>\n<li><b>1 <\/b>(<b>msoBarTypeMenuBar<\/b>): Men&uuml;leiste<\/li>\n<li><b>2 <\/b>(<b>msoBarTypePopup<\/b>): Kontextmen&uuml;<\/li>\n<\/ul>\n<p>Diese Werte k&ouml;nnen wir uns gleich merken, denn wir ben&ouml;tigen diese sp&auml;ter zum Anlegen neuer <b>CommandBar<\/b>-Elemente.<\/p>\n<p>Passen wir also unsere Prozedur zur Ausgabe der VBA-Editor-Symbolleisten wie folgt an:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>AlleCommandbars()\r\n     <span style=\"color:blue;\">Dim <\/span>cbr<span style=\"color:blue;\"> As <\/span>CommandBar\r\n     For Each cbr In VBE.CommandBars\r\n         Select Case cbr.Type\r\n             <span style=\"color:blue;\">Case <\/span>msoBarTypeNormal\r\n                 <span style=\"color:blue;\">Debug.Print<\/span> \"Symbolleiste: \" & cbr.Name\r\n             <span style=\"color:blue;\">Case <\/span>msoBarTypeMenuBar\r\n                 <span style=\"color:blue;\">Debug.Print<\/span> \"Men&uuml;leiste:   \" & cbr.Name\r\n             <span style=\"color:blue;\">Case <\/span>msoBarTypePopup\r\n                 <span style=\"color:blue;\">Debug.Print<\/span> \"Kontextmen&uuml;:  \" & cbr.Name\r\n         <span style=\"color:blue;\">End Select<\/span>\r\n     <span style=\"color:blue;\">Next<\/span> cbr\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Damit erhalten wir bereits genauere Informationen dar&uuml;ber, welche Typ ein <b>CommandBar<\/b>-Objekt hat (siehe Bild 5).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_435_005.png\" alt=\"CommandBar-Typ plus Name\" width=\"424,6267\" height=\"517,101\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: CommandBar-Typ plus Name<\/span><\/b><\/p>\n<h2>Position von CommandBar-Elementen ermitteln und festlegen<\/h2>\n<p>In Bild 6 haben wir Symbolleisten am oberen, linken, unteren und rechten Rand und au&szlig;erdem eine freischwebendes Symbolleiste. Diese haben wir dort einfach per Drag and Drop platziert. Die Position k&ouml;nnen wir nun per VBA auslesen und auch setzen. Dazu verwenden wie die folgenden Eigenschaften:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2024_04\/pic_435_006.png\" alt=\"Verschiedene Positionen f&uuml;r Symbolleisten \" width=\"700\" height=\"361,4429\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Verschiedene Positionen f&uuml;r Symbolleisten <\/span><\/b><\/p>\n<ul>\n<li><b>Position<\/b>: Liefert eine Konstante f&uuml;r die aktuelle Position zur&uuml;ck.<\/li>\n<li><b>Left<\/b>: Gibt den Abstand vom linken Fensterrand an.<\/li>\n<li><b>Top<\/b>: Gibt den Abstand vom oberen Fensterrand an.<\/li>\n<li><b>Width<\/b>: Gibt die Breite des <b>CommandBar<\/b>-Objekts an.<\/li>\n<li><b>Height<\/b>: Gibt die H&ouml;he des <b>CommandBar<\/b>-Objekts an.<\/li>\n<\/ul>\n<p>F&uuml;r die Eigenschaft <b>Position <\/b>gibt es die folgenden Werte:<\/p>\n<ul>\n<li><b>msoBarBottom<\/b>: Das <b>CommandBar<\/b>-Objekt ist am unteren Rand verankert.<\/li>\n<li><b>msoBarFloating<\/b>: Das CommandBar-Objekt ist frei schwebend.<\/li>\n<li><b>msoBarLeft<\/b>: Das <b>CommandBar<\/b>-Objekt ist am linken Rand verankert.<\/li>\n<li><b>msoBarMenuBar<\/b>: Das <b>CommandBar<\/b>-Objekt ist eine Men&uuml;leiste und somit als oberstes Element oben verankert.<\/li>\n<li><b>msoBarPopup<\/b>: Das <b>CommandBar<\/b>-Objekt ist ein Kontextmen&uuml;.<\/li>\n<li><b>msoBarRight<\/b>: Das <b>CommandBar<\/b>-Objekt ist am rechten Rand verankert.<\/li>\n<li><b>msoBarTop<\/b>: Das <b>CommandBar<\/b>-Objekt ist am oberen Rand verankert.<\/li>\n<\/ul>\n<p>Du wirst vielleicht feststellen, dass wir hier einige &Uuml;bereinstimmungen mit den Werten der Eigenschaft <b>Type <\/b>des <b>CommandBar<\/b>-Elements haben.<\/p>\n<p>Das h&auml;ngt damit zusammen, dass die Werte f&uuml;r <b>Position <\/b>wohl eigentlich nur f&uuml;r die frei platzierbaren Symbolleisten (Typ <b>msoBarTypeNormal<\/b>) vorgesehen sind.<\/p>\n<p>Damit man f&uuml;r <b>Position <\/b>aber auch f&uuml;r Typ <b>msoBarTypeMenuBar<\/b> oder <b>msoBarTypePopup<\/b> auch Werte hat, wurden die beiden Einstellungen <b>msoBarMenuBar <\/b>und <b>msoBarPopup <\/b>hinzugef&uuml;gt. <\/p>\n<p>Dabei ist anzumerken, dass <b>CommandBars <\/b>des Typs <b>msoBarTypeMenuBar <\/b>f&uuml;r <b>Position <\/b>immer den Wert <b>msoBarMenuBar <\/b>aufweisen und solche des Typs <b>msoBarTypePopup <\/b>immer den Wert <b>msoBarPopup<\/b>.<\/p>\n<h2>Weitere Eigenschaften der CommandBar-Klasse<\/h2>\n<p>Die <b>CommandBar<\/b>-Klasse liefert und noch weitere Eigenschaften:<\/p>\n<ul>\n<li><b>Application<\/b>: Soll eigentlich den Verweis der &uuml;bergeordneten Anwendung liefern, was aber in diesem Fall fehlschl&auml;gt.<\/li>\n<li><b>AdaptiveMenu<\/b>: Gibt an, ob das Men&uuml; nur die am h&auml;ufigsten verwendeten Befehle anzeigen soll. Diese Eigenschaft war nur in Office bis Version 2003 verf&uuml;gbar, im VBA-Editor hat sie keine Funktion.<\/li>\n<li><b>Builtin<\/b>: Gibt an, ob ein <b>CommandBar<\/b>-Objekt eingebaut (<b>True<\/b>) oder benutzerdefiniert ist (<b>False<\/b>)<\/li>\n<li><b>Context<\/b>: Liefert f&uuml;r <b>CommandBar<\/b>-Objekt im VBA-Editor keinen Wert.<\/li>\n<li><b>Controls<\/b>: Liefert die Auflistung der Steuerelemente des <b>CommandBar<\/b>-Elements.<\/li>\n<li><b>Creator<\/b>: Gibt einen <b>Long<\/b>-Wert zur&uuml;ck, der eine 32-Bit-Zahl darstellt, die die Anwendung identifiziert, die die <b>CommandBar<\/b>-Instanz erstellt hat. F&uuml;r Microsoft Excel ist dieser Wert beispielsweise <b>1480803660<\/b>, f&uuml;r Microsoft Access <b>1279872325 <\/b>und f&uuml;r den VBA-Editor <b>1398031698<\/b>.<\/li>\n<li><b>Enabled<\/b>: Gibt an, ob das <b>CommandBar<\/b>-Element aktiviert ist oder aktiviert oder deaktiviert dieses durch Setzen des Wertes <b>True <\/b>oder <b>False<\/b>.<\/li>\n<li><b>Index<\/b>: Liefert eine Index-Wert innerhalb der <b>CommandBars<\/b>-Auflistung.<\/li>\n<li><b>Name<\/b>: Enth&auml;lt den Standardnamen des <b>CommandBar<\/b>-Objekts (auf Englisch)<\/li>\n<li><b>NameLocal<\/b>: Enth&auml;lt den an die jeweils eingestellte Sprache angepassten Namen.<\/li>\n<li><b>Parent<\/b>: Gibt einen Objektverweis auf das &uuml;bergeordnete Element zur&uuml;ck, im Falle von <b>CommandBars <\/b>im VBA-Editor also ein Verweis auf das Objekt <b>VBE<\/b>.<\/li>\n<li><b>Protection<\/b>: Gibt den Schutzstatus des <b>CommandBar<\/b>-Elements an. In diesem Fall erhalten wir f&uuml;r die VBE-Symbolleisten Werte wie <b>0<\/b>, <b>8<\/b>, <b>22 <\/b>oder <b>23 <\/b>zur&uuml;ck. Diese entsprechen Kombinationen der folgenden Werte: <b>msoBarNoProtection <\/b>(<b>0<\/b>), <b>msoBarNoCustomize <\/b>(<b>1<\/b>), <b>msoBarNoResize <\/b>(<b>2<\/b>), <b>msoBarNoMove <\/b>(<b>4<\/b>), <b>msoBarNoChangeVisible <\/b>(<b>8<\/b>), <b>msoBarNoChangeDock <\/b>(<b>16<\/b>), <b>msoBarNoVerticalDock <\/b>(<b>32<\/b>) und <b>msoBarNoHorizontalDock <\/b>(<b>64<\/b>)<\/li>\n<li><b>RowIndex<\/b>: Gibt bei <b>CommandBar<\/b>-Elementen, die verankert sind, einen Index f&uuml;r die vertikale Anordnung an.<\/li>\n<li><b>Visible<\/b>: Gibt an, ob ein <b>CommandBar<\/b>-Element sichtbar ist oder nicht. Kann auch zum Ein- und Ausblenden von <b>CommandBar<\/b>-Elementen verwendet werden.<\/li>\n<\/ul>\n<h2>Methoden der CommandBar-Klasse<\/h2>\n<p>Die <b>CommandBar<\/b>-Klasse stellt die folgenden Methoden bereit, mit denen wir zum Beispiel <b>CommandBar<\/b>-Objekte l&ouml;schen oder zur&uuml;cksetzen k&ouml;nnen:<\/p>\n<ul>\n<li><b>Delete<\/b>: L&ouml;scht das <b>CommandBar<\/b>-Element.<\/li>\n<li><b>FindControl<\/b>: Sucht nach einem bestimmten Steuerelement im aktuellen <b>CommandBar<\/b>-Element. Dabei k&ouml;nnen die folgenden optionalen Suchparameter zum Einsatz kommen: <b>Type <\/b>(Wert aus der Auflistung <b>MsoControlType<\/b>, gibt den Typ des Steuerelements an), <b>Id<\/b> (gibt die ID des Steuerelements an), <b>Tag <\/b>(gibt den Tag des Steuerelements an), <b>Visible <\/b>(gibt an, ob das Steuerelement sichtbar ist), <b>Recursive <\/b>(gibt an, ob die Suche rekursiv durchgef&uuml;hrt werden soll)<\/li>\n<li><b>Reset<\/b>: Setzt das <b>CommandBar<\/b>-Element in den Anfangszustand zur&uuml;ck.<\/li>\n<li><b>ShowPopup<\/b>: Zeigt das <b>CommandBar<\/b>-Element als Kontextmen&uuml; an.<\/li>\n<\/ul>\n<h2>Symbolleisten-CommandBar per VBA erstellen<\/h2>\n<p>Mit der folgenden Prozedur erstellen wir ein einfaches <b>CommandBar<\/b>-Objekt als Symbolleiste:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>CreateCommandBar_Symbolleiste()\r\n     <span style=\"color:blue;\">Dim <\/span>cbr<span style=\"color:blue;\"> As <\/span>CommandBar\r\n     <span style=\"color:blue;\">Set<\/span> cbr = VBE.CommandBars.Add()\r\n     <span style=\"color:blue;\">With<\/span> cbr\r\n         .Position = msoBarTop\r\n         .Name = \"Beispielsymbolleiste\"\r\n         .Visible = <span style=\"color:blue;\">True<\/span>\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Dies legt eine einfache Symbolleiste an. Das legen wir durch Setzen von Position auf den Wert <b>msoBarTop <\/b>fest.<\/p>\n<h2>Men&uuml;leisten-CommandBar per VBA erstellen<\/h2>\n<p>Wenn wir ein <b>MenuBar <\/b>erstellen wollen, also die Hauptmen&uuml;leiste, dann m&uuml;ssten wir den Parameter <b>MenuBar <\/b>beim Erstellen auf den Wert <b>True <\/b>einstellen. Das erledigen wir mit der folgenden Prozedur:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>CreateCommandBar_Menueleiste()\r\n     <span style=\"color:blue;\">Dim <\/span>cbr<span style=\"color:blue;\"> As <\/span>CommandBar\r\n     <span style=\"color:blue;\">Set<\/span> cbr = VBE.CommandBars.Add(, , <span style=\"color:blue;\">True<\/span>)\r\n     <span style=\"color:blue;\">With<\/span> cbr\r\n         .Name = \"Beispielmenueleiste\"\r\n         .Visible = <span style=\"color:blue;\">True<\/span>\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Dadurch wird gleichzeitig die eigentliche Men&uuml;leiste ausgeblendet. Der Hintergrund: Wir k&ouml;nnen jeweils nur eine Men&uuml;leiste verwenden. Die eingebaute Men&uuml;leiste blenden wir so wieder ein:<\/p>\n<pre>VBE.CommandBars(\"Men&uuml;leiste\").Visible = <span style=\"color:blue;\">True<\/span><\/pre>\n<h2>Kontextmen&uuml;-CommandBar per VBA erstellen<\/h2>\n<p>Wenn wir ein Kontextmen&uuml; ben&ouml;tigen, stellen wir Position direkt in der <b>Add<\/b>-Methode auf <b>msoBarPopup <\/b>ein. Nachdem wir den Namen festgelegt haben, k&ouml;nnen wir das Kontextmen&uuml; direkt mit der <b>ShowPopup<\/b>-Methode anzeigen.<\/p>\n<p>Damit erhalten wir allerdings nur ein leeres Quadrat, denn wir haben ja noch keine Steuerelemente hinzugef&uuml;gt:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>CreateCommandBar_Kontextmenue()\r\n     <span style=\"color:blue;\">Dim <\/span>cbr<span style=\"color:blue;\"> As <\/span>CommandBar\r\n     <span style=\"color:blue;\">Set<\/span> cbr = VBE.CommandBars.Add(, msoBarPopup)\r\n     <span style=\"color:blue;\">With<\/span> cbr\r\n         .Name = \"Kontextmenueleiste\"\r\n         .ShowPopup\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>CommandBar l&ouml;schen<\/h2>\n<p>Ein einzelnes <b>CommandBar<\/b>-Element l&ouml;schen wir mit der <b>Delete<\/b>-Methode der <b>CommandBar<\/b>-Objektvariablen.<\/p>\n<p>Dies gelingt nur f&uuml;r benutzerdefinierte <b>CommandBar<\/b>-Elemente, also solche, die wir selbst eingebaut haben:<\/p>\n<pre>cbr.Delete<\/pre>\n<h2>Alle benutzerdefinierten CommandBar-Elemente l&ouml;schen<\/h2>\n<p>Wenn wir einmal alle benutzerdefinieren Elemente entfernen wollen, k&ouml;nnen wir das mit einer Prozedur wie der folgenden erledigen.<\/p>\n<p>Diese durchl&auml;uft alle <b>CommandBar<\/b>-Elemente des VBA-Editors und pr&uuml;ft mit der Eigenschaft <b>Builtin<\/b>, ob dieses ein eingebautes oder benutzerdefiniertes <b>CommandBar<\/b>-Element ist. F&uuml;r benutzerdefinierte <b>CommandBar<\/b>-Elemente ruft sie die <b>Delete<\/b>-Methode auf:<\/p>\n<pre><span style=\"color:blue;\">Public Sub <\/span>DeleteUserdefinedCommandbars()\r\n     <span style=\"color:blue;\">Dim <\/span>cbr<span style=\"color:blue;\"> As <\/span>CommandBar\r\n     For Each cbr In VBE.CommandBars\r\n         <span style=\"color:blue;\">If <\/span>cbr.BuiltIn = <span style=\"color:blue;\">False<\/span><span style=\"color:blue;\"> Then<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> \"Delete \" & cbr.Name\r\n             cbr.Delete\r\n         <span style=\"color:blue;\">End If<\/span>\r\n     <span style=\"color:blue;\">Next<\/span> cbr\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Dieser Artikel zeigt, wie wir vorhandene <b>CommandBar<\/b>-Elemente durchlaufen, wie wir CommandBars anlegen und wie wir diese wieder l&ouml;schen k&ouml;nnen. Au&szlig;erdem haben wir die drei verschiedenen Typen von Men&uuml;s vorgestellt: die Symbolleiste, die Men&uuml;leiste und die Kontextmen&uuml;s. Wir haben gezeigt, wir die unterschiedlichen Typen von CommandBars per VBA erzeugt werden k&ouml;nnen. Au&szlig;erdem hast Du alle relevanten Eigenschaften der <b>CommandBar<\/b>-Klasse kennengelernt.<\/p>\n<p>In einem weiteren Artikel namens <b>Men&uuml;-Steuerelemente per VBA programmieren <\/b>(<b>www.vbentwickler.de\/436<\/b>) schauen wir uns noch an, wie wir die eigentlich interessanten Elemente hinzuf&uuml;gen &#8211; die Schaltfl&auml;chen und die anderen Steuerelemente. Wobei die Schaltfl&auml;chen wohl 99% aller Steuerelemente in <b>CommandBar<\/b>-Elementen ausmachen d&uuml;rften.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das Men&uuml;system des VBA-Editors l&auml;sst sich &uuml;ber die Benutzeroberfl&auml;che bereits einfach anpassen. Das haben wir im Artikel &#8220;Men&uuml;system im VBA-Editor anpassen&#8221; (www.vbentwickler.de\/434)  gezeigt. Au&szlig;erdem haben wir uns im Artikel &#8220;Kontextmen&uuml;s per VBA programmieren&#8221; (www.vbentwickler.de\/368) bereits angeschaut, wie wir per VBA Kontextmen&uuml;s erstellen und anpassen k&ouml;nnen. Es fehlen also noch die Informationen, wie wir die eigentlichen Men&uuml;leisten und Symbolleisten mit VBA programmieren k&ouml;nnen. Wie das gelingt, schauen wir uns im vorliegenden Artikel an. Wir zeigen, wie vorhandene Men&uuml;s angepasst und wie neue Men&uuml;s erstellt werden k&ouml;nnen. <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662024,66042024,44000037],"tags":[],"yst_prominent_words":[],"class_list":["post-55000435","post","type-post","status-publish","format-standard","hentry","category-662024","category-66042024","category-VBAEditor_programmieren"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"Das Men\u00fcsystem des VBA-Editors l\u00e4sst sich \u00fcber die Benutzeroberfl\u00e4che bereits einfach anpassen. Das haben wir im Artikel &quot;Men\u00fcsystem im VBA-Editor anpassen&quot; (www.vbentwickler.de\/434) gezeigt. Au\u00dferdem haben wir uns im Artikel &quot;Kontextmen\u00fcs per VBA programmieren&quot; (www.vbentwickler.de\/368) bereits angeschaut, wie wir per VBA Kontextmen\u00fcs erstellen und anpassen k\u00f6nnen. Es fehlen also noch die Informationen, wie wir die eigentlichen Men\u00fcleisten und Symbolleisten mit VBA programmieren k\u00f6nnen. Wie das gelingt, schauen wir uns im vorliegenden Artikel an. Wir zeigen, wie vorhandene Men\u00fcs angepasst und wie neue Men\u00fcs erstellt werden k\u00f6nnen.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Andr\u00e9 Minhorst\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Men\u00fcs per VBA programmieren - Visual Basic Entwickler\" \/>\n\t\t<meta property=\"og:description\" content=\"Das Men\u00fcsystem des VBA-Editors l\u00e4sst sich \u00fcber die Benutzeroberfl\u00e4che bereits einfach anpassen. Das haben wir im Artikel &quot;Men\u00fcsystem im VBA-Editor anpassen&quot; (www.vbentwickler.de\/434) gezeigt. Au\u00dferdem haben wir uns im Artikel &quot;Kontextmen\u00fcs per VBA programmieren&quot; (www.vbentwickler.de\/368) bereits angeschaut, wie wir per VBA Kontextmen\u00fcs erstellen und anpassen k\u00f6nnen. Es fehlen also noch die Informationen, wie wir die eigentlichen Men\u00fcleisten und Symbolleisten mit VBA programmieren k\u00f6nnen. Wie das gelingt, schauen wir uns im vorliegenden Artikel an. Wir zeigen, wie vorhandene Men\u00fcs angepasst und wie neue Men\u00fcs erstellt werden k\u00f6nnen.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-08-14T14:45:54+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"-001-11-30T00:00:00+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Men\u00fcs per VBA programmieren - Visual Basic Entwickler\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Das Men\u00fcsystem des VBA-Editors l\u00e4sst sich \u00fcber die Benutzeroberfl\u00e4che bereits einfach anpassen. Das haben wir im Artikel &quot;Men\u00fcsystem im VBA-Editor anpassen&quot; (www.vbentwickler.de\/434) gezeigt. Au\u00dferdem haben wir uns im Artikel &quot;Kontextmen\u00fcs per VBA programmieren&quot; (www.vbentwickler.de\/368) bereits angeschaut, wie wir per VBA Kontextmen\u00fcs erstellen und anpassen k\u00f6nnen. Es fehlen also noch die Informationen, wie wir die eigentlichen Men\u00fcleisten und Symbolleisten mit VBA programmieren k\u00f6nnen. Wie das gelingt, schauen wir uns im vorliegenden Artikel an. Wir zeigen, wie vorhandene Men\u00fcs angepasst und wie neue Men\u00fcs erstellt werden k\u00f6nnen.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Menues_per_VBA_programmieren\\\/#blogposting\",\"name\":\"Men\\u00fcs per VBA programmieren - Visual Basic Entwickler\",\"headline\":\"Men&uuml;s per VBA programmieren\",\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/1cd7195146804360847f6d2cc2b51841\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Menues_per_VBA_programmieren\\\/#articleImage\"},\"datePublished\":\"2024-08-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"inLanguage\":\"de-DE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Menues_per_VBA_programmieren\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Menues_per_VBA_programmieren\\\/#webpage\"},\"articleSection\":\"2024, 4\\\/2024, VBA-Editor programmieren\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Menues_per_VBA_programmieren\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vbentwickler.de\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/#listItem\",\"name\":\"2024\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/#listItem\",\"position\":2,\"name\":\"2024\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/4\\\/2024\\\/#listItem\",\"name\":\"4\\\/2024\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/4\\\/2024\\\/#listItem\",\"position\":3,\"name\":\"4\\\/2024\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/4\\\/2024\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Menues_per_VBA_programmieren\\\/#listItem\",\"name\":\"Men&uuml;s per VBA programmieren\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/#listItem\",\"name\":\"2024\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Menues_per_VBA_programmieren\\\/#listItem\",\"position\":4,\"name\":\"Men&uuml;s per VBA programmieren\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2024\\\/4\\\/2024\\\/#listItem\",\"name\":\"4\\\/2024\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/cropped-header_vbe-1.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Menues_per_VBA_programmieren\\\/#organizationLogo\",\"width\":664,\"height\":225},\"image\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Menues_per_VBA_programmieren\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Menues_per_VBA_programmieren\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Andr\\u00e9 Minhorst\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Menues_per_VBA_programmieren\\\/#webpage\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/Menues_per_VBA_programmieren\\\/\",\"name\":\"Men\\u00fcs per VBA programmieren - Visual Basic Entwickler\",\"description\":\"Das Men\\u00fcsystem des VBA-Editors l\\u00e4sst sich \\u00fcber die Benutzeroberfl\\u00e4che bereits einfach anpassen. Das haben wir im Artikel \\\"Men\\u00fcsystem im VBA-Editor anpassen\\\" (www.vbentwickler.de\\\/434) gezeigt. Au\\u00dferdem haben wir uns im Artikel \\\"Kontextmen\\u00fcs per VBA programmieren\\\" (www.vbentwickler.de\\\/368) bereits angeschaut, wie wir per VBA Kontextmen\\u00fcs erstellen und anpassen k\\u00f6nnen. Es fehlen also noch die Informationen, wie wir die eigentlichen Men\\u00fcleisten und Symbolleisten mit VBA programmieren k\\u00f6nnen. Wie das gelingt, schauen wir uns im vorliegenden Artikel an. Wir zeigen, wie vorhandene Men\\u00fcs angepasst und wie neue Men\\u00fcs erstellt werden k\\u00f6nnen.\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Menues_per_VBA_programmieren\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"datePublished\":\"2024-08-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"inLanguage\":\"de-DE\",\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Men\u00fcs per VBA programmieren - Visual Basic Entwickler","description":"Das Men\u00fcsystem des VBA-Editors l\u00e4sst sich \u00fcber die Benutzeroberfl\u00e4che bereits einfach anpassen. Das haben wir im Artikel \"Men\u00fcsystem im VBA-Editor anpassen\" (www.vbentwickler.de\/434) gezeigt. Au\u00dferdem haben wir uns im Artikel \"Kontextmen\u00fcs per VBA programmieren\" (www.vbentwickler.de\/368) bereits angeschaut, wie wir per VBA Kontextmen\u00fcs erstellen und anpassen k\u00f6nnen. Es fehlen also noch die Informationen, wie wir die eigentlichen Men\u00fcleisten und Symbolleisten mit VBA programmieren k\u00f6nnen. Wie das gelingt, schauen wir uns im vorliegenden Artikel an. Wir zeigen, wie vorhandene Men\u00fcs angepasst und wie neue Men\u00fcs erstellt werden k\u00f6nnen.","canonical_url":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/#blogposting","name":"Men\u00fcs per VBA programmieren - Visual Basic Entwickler","headline":"Men&uuml;s per VBA programmieren","author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"},"image":{"@type":"ImageObject","url":"http:\/\/vg08.met.vgwort.de\/na\/1cd7195146804360847f6d2cc2b51841","@id":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/#articleImage"},"datePublished":"2024-08-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00","inLanguage":"de-DE","mainEntityOfPage":{"@id":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/#webpage"},"isPartOf":{"@id":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/#webpage"},"articleSection":"2024, 4\/2024, VBA-Editor programmieren"},{"@type":"BreadcrumbList","@id":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","position":1,"name":"Home","item":"https:\/\/vbentwickler.de","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2024\/#listItem","name":"2024"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2024\/#listItem","position":2,"name":"2024","item":"https:\/\/vbentwickler.de\/category\/2024\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2024\/4\/2024\/#listItem","name":"4\/2024"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2024\/4\/2024\/#listItem","position":3,"name":"4\/2024","item":"https:\/\/vbentwickler.de\/category\/2024\/4\/2024\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/#listItem","name":"Men&uuml;s per VBA programmieren"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2024\/#listItem","name":"2024"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/#listItem","position":4,"name":"Men&uuml;s per VBA programmieren","previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2024\/4\/2024\/#listItem","name":"4\/2024"}}]},{"@type":"Organization","@id":"https:\/\/vbentwickler.de\/#organization","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","url":"https:\/\/vbentwickler.de\/","logo":{"@type":"ImageObject","url":"https:\/\/vbentwickler.de\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","@id":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/#organizationLogo","width":664,"height":225},"image":{"@id":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author","url":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","@id":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","width":96,"height":96,"caption":"Andr\u00e9 Minhorst"}},{"@type":"WebPage","@id":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/#webpage","url":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/","name":"Men\u00fcs per VBA programmieren - Visual Basic Entwickler","description":"Das Men\u00fcsystem des VBA-Editors l\u00e4sst sich \u00fcber die Benutzeroberfl\u00e4che bereits einfach anpassen. Das haben wir im Artikel \"Men\u00fcsystem im VBA-Editor anpassen\" (www.vbentwickler.de\/434) gezeigt. Au\u00dferdem haben wir uns im Artikel \"Kontextmen\u00fcs per VBA programmieren\" (www.vbentwickler.de\/368) bereits angeschaut, wie wir per VBA Kontextmen\u00fcs erstellen und anpassen k\u00f6nnen. Es fehlen also noch die Informationen, wie wir die eigentlichen Men\u00fcleisten und Symbolleisten mit VBA programmieren k\u00f6nnen. Wie das gelingt, schauen wir uns im vorliegenden Artikel an. Wir zeigen, wie vorhandene Men\u00fcs angepasst und wie neue Men\u00fcs erstellt werden k\u00f6nnen.","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/vbentwickler.de\/#website"},"breadcrumb":{"@id":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/#breadcrumblist"},"author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"creator":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"datePublished":"2024-08-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00"},{"@type":"WebSite","@id":"https:\/\/vbentwickler.de\/#website","url":"https:\/\/vbentwickler.de\/","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","inLanguage":"de-DE","publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"}}]},"og:locale":"de_DE","og:site_name":"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","og:type":"article","og:title":"Men\u00fcs per VBA programmieren - Visual Basic Entwickler","og:description":"Das Men\u00fcsystem des VBA-Editors l\u00e4sst sich \u00fcber die Benutzeroberfl\u00e4che bereits einfach anpassen. Das haben wir im Artikel &quot;Men\u00fcsystem im VBA-Editor anpassen&quot; (www.vbentwickler.de\/434) gezeigt. Au\u00dferdem haben wir uns im Artikel &quot;Kontextmen\u00fcs per VBA programmieren&quot; (www.vbentwickler.de\/368) bereits angeschaut, wie wir per VBA Kontextmen\u00fcs erstellen und anpassen k\u00f6nnen. Es fehlen also noch die Informationen, wie wir die eigentlichen Men\u00fcleisten und Symbolleisten mit VBA programmieren k\u00f6nnen. Wie das gelingt, schauen wir uns im vorliegenden Artikel an. Wir zeigen, wie vorhandene Men\u00fcs angepasst und wie neue Men\u00fcs erstellt werden k\u00f6nnen.","og:url":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/","og:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","og:image:secure_url":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","article:published_time":"2024-08-14T14:45:54+00:00","article:modified_time":"-001-11-30T00:00:00+00:00","twitter:card":"summary_large_image","twitter:title":"Men\u00fcs per VBA programmieren - Visual Basic Entwickler","twitter:description":"Das Men\u00fcsystem des VBA-Editors l\u00e4sst sich \u00fcber die Benutzeroberfl\u00e4che bereits einfach anpassen. Das haben wir im Artikel &quot;Men\u00fcsystem im VBA-Editor anpassen&quot; (www.vbentwickler.de\/434) gezeigt. Au\u00dferdem haben wir uns im Artikel &quot;Kontextmen\u00fcs per VBA programmieren&quot; (www.vbentwickler.de\/368) bereits angeschaut, wie wir per VBA Kontextmen\u00fcs erstellen und anpassen k\u00f6nnen. Es fehlen also noch die Informationen, wie wir die eigentlichen Men\u00fcleisten und Symbolleisten mit VBA programmieren k\u00f6nnen. Wie das gelingt, schauen wir uns im vorliegenden Artikel an. Wir zeigen, wie vorhandene Men\u00fcs angepasst und wie neue Men\u00fcs erstellt werden k\u00f6nnen.","twitter:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png"},"aioseo_meta_data":{"post_id":"55000435","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2024-08-14 12:46:33","updated":"2026-05-16 09:13:39","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2024\/\" title=\"2024\">2024<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2024\/4\/2024\/\" title=\"4\/2024\">4\/2024<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tMen\u00fcs per VBA programmieren\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/vbentwickler.de"},{"label":"2024","link":"https:\/\/vbentwickler.de\/category\/2024\/"},{"label":"4\/2024","link":"https:\/\/vbentwickler.de\/category\/2024\/4\/2024\/"},{"label":"Men&uuml;s per VBA programmieren","link":"https:\/\/vbentwickler.de\/Menues_per_VBA_programmieren\/"}],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000435","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000435"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000435\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000435"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000435"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000435"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}