Menü erstellen
Benutzerdefinierte Menüs lassen sich in allen MS Office-Programmen einfach mit der Maus im Dialog zusammenstellen und sind dann fertig. Fertig? Nein, denn Lorenz Hölscher zeigt Ihnen, wie Sie da mit ein wenig VBA-Programmierung noch viel mehr herausholen.
Die folgenden Beispiele wurden in Word erstellt, funktionieren aber mit geringfügigen Änderungen (ThisDocument heißt in Excel ThisWorkbook oder in Access CodeDB) auch in den übrigen MS Office-Programmen.
Menü-Titel erstellen
Auch wenn sich ein einfaches Menü sehr schnell im SymbolleistenAnpassen-Dialog (Ansicht/Symbolleisten/Anpassen) erstellen lässt, bietet es doch Vorteile, schon dies per VBA zu erledigen. Zum einen lernen Sie dabei alle Strukturen und Befehle kennen, die Sie anschließend ohnehin benötigen. Zum anderen stehen Ihnen damit Möglichkeiten offen, die Sie sonst nicht hätten.
Der folgende Code fügt in der Standard-Menüleiste einen neuen Menütitel namens "Spezial" ein:
Sub MacheMenue()
Dim cbpSpezial As CommandBarPopup
CustomizationContext = ThisDocument
Set cbpSpezial = Application.CommandBars("Menu bar").Controls.Add(msoControlPopup)
With cbpSpezial
.Caption = "Spezial"
.BeginGroup = True
End With
End SubDabei müssen Sie beachten, dass ein Menütitel kein Menüeintrag (Typ msoControlButton bzw. Objekt CommandBarPopup) wie andere ist, sondern die Fähigkeit zum Ausklappen (Typ msoControlPopup bzw. Objekt CommandBarButton) braucht.
Außerdem wird der Menütitel technisch korrekt nicht der Symbolleiste selbst (Commandbars("Menu bar")), sondern ihrer Controls-Auflistung hinzugefügt. Das wird oft verwechselt und macht die Programmierung scheinbar unverständlich. Auch ein später noch hinzukommendes Untermenü verhält sich genauso, nur eben ein paar Ebenen tiefer.
