Hinweis: Dieses Makro funktioniert bis Excel 2003. Für die Version ab Excel 2007 finden Sie Programmier-Tipps zum Thema Menüband unter diesem Link.
Das Makro Menu_ID_ermitteln gibt im Direktfernster die ID´s der einzelnen Menüpunkte aus, mit der das entsprechende Menü angesprochen werden kann.
Sub Menu_ID_ermitteln()
Dim Menüleiste As CommandBar
Dim i As Integer
Dim n As Integer
Set Menüleiste = CommandBars(1)
n = Menüleiste.Controls.Count
For i = 1 To n
Debug.Print Menüleiste.Controls(i).ID & _
" ---> " & Menüleiste.Controls(i).Caption
Next
End Sub
Die Ausgabe im Direktbereich sieht dann in etwa wie folgt aus:
30002 ---> &Datei
30003 ---> &Bearbeiten
30004 ---> &Ansicht
30005 ---> &Einfügen
30006 ---> Forma&t
30007 ---> E&xtras
30011 ---> Date&n
30083 ---> A&ktion
30009 ---> &Fenster
30010 ---> &?
Um einen Menüpunkt zu deaktivieren ändern Sie die ID-Nr. in die gewünschte
in dem im Direktbereich ausgegebene ID-Nr. ab. Dieser Menüpunkt wird nach Ausführung
des Makros 'ausblenden' deaktiviert.
Sub ausblenden()
Dim ctrl As CommandBarPopup
Set ctrl = Application.CommandBars.FindControl(ID:=30009) 'hier z. B. Fenster
If ctrl Is Nothing Then Else ctrl.Enabled = False
End Sub
Das Makro 'einblenden' aktiviert den gewünschten Menüpunkt wieder! Es ist entsprechend
wieder die gewünsche Menü-Id-Nr. anzugeben.
Sub einblenden()
Dim ctrl As CommandBarPopup
Set ctrl = Application.CommandBars.FindControl(ID:=30009) 'hier z. B. Fenster
If ctrl Is Nothing Then Else ctrl.Enabled = True
End Sub