LÖSUNGEN

Dynamische Menüs

Menüeinträge löschen

Es mag Sie vielleicht überraschen, dass das Erzeugen neuer Menüeinträge mit dem Löschen von alten beginnt. Andernfalls wird das Menü immer länger, denken Sie also rechtzeitig an das Aufräumen.

Listing 3 zeigt, welche Variablen bereitgestellt werden müssen und wie die vorhandenen Menüeinträge mit einer einfachen Schleife gelöscht werden können.

Sub ErzeugeMenue()
Dim RS As Recordset
Dim barMenu As CommandBar 'MS-Office Bibliothek einbinden!
Dim ctlMenuItem As CommandBarButton
Dim strObjName As String
Dim i As Integer
Set barMenu = CommandBars(conMenueName).Controls(conMenueTitel).CommandBar
For i = 1 To barMenu.Controls.Count
barMenu.Controls(1).Delete
Next
' weiter in Listing 4

Beachten Sie bitte, dass in der Schleife ausdrücklich immer der erste Menüeintrag gelöscht wird. Falls Sie dort stattdessen barMenu.Controls(i).Delete schreiben würden, würde nur jeder zweite Eintrag entfernt und nach der Hälfte der Schleife ein Laufzeitfehler auftreten.