LÖSUNGEN

Dynamische Menüs

Wann wird das Menü aktualisiert?

Das erste Problem dabei ist, wann das Menü aktualisiert wird. Ganz einfach: so spät wie möglich! Das bedeutet, dass nicht dann aktualisiert wird, wenn sich die Bedingungen ändern (also beispielsweise beim Löschen oder Hinzufügen eines Datensatzes). Vielmehr muss das Menü erst dann korrekt sein, wenn es benutzt werden soll.

Wie jeder Menüeintrag verfügt auch ein Menütitel über die Fähigkeit, beim Klick eine Prozedur aufzurufen. Diese macht für dynamische Menüs nichts anderes, als das Menü schnell zu erzeugen, bevor es dann angezeigt wird.

Nachdem Sie in einem Modul eine Prozedur wie in Listing 1 geschrieben haben, lässt sich diese wie in Bild 2 über Extras Anpassen diesem Menütitel als Wert Bei Aktion ebenso zuweisen wie jedem anderen Menüeintrag. Lassen Sie sich nicht davon irritieren, dass diese Prozedur in der Liste nicht angeboten wird, es funktioniert trotzdem.

Sub MenuTitelPiept()
Beep
End Sub

Bild 2: Ein Menütitel ruft eine Aktion auf.
Bild 2: Ein Menütitel ruft eine Aktion auf.

Letztendlich wird damit natürlich nicht ein einfaches Piepen ausgelöst, sondern das Untermenü erstellt, welches anschließend ausgeklappt wird. Die einzige Bedingung ist, dass der Msg Box-Befehl nicht erlaubt ist, weil er dann statt des Untermenüs erscheint.