Einzelne Menüpunkte deaktivieren (ausblenden)

300021



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