VBA: Echte und unechte Schaltflächen

Von: Lorenz Hölscher
Stand: 11. April 2011
Anmelden um Kommentare zu schreiben

Schaltflächen mit PopUp-Menü

Anzeige des PopUp-Menüs

Der Aufruf eines fertigen PopUp-Menüs hingegen ist denkbar einfach und im Code der schon vorhandenen Schaltfläche zu erledigen:

Dim cbrPopUp  As CommandBar

Private Sub btnMenu_Click()
	Set cbrPopUp = CommandBars(PopUpName)	'muss ein PopUp-Menü sein
	cbrPopUp.ShowPopup
End Sub

Jetzt sind wir fast am Ziel, denn durch (Links-!)Klick auf die Schaltfläche wird nun wie im folgenden Bild das PopUp-Menü angezeigt.

PopUp-Menü durch die Schaltfläche ausgelöst

Leider ist es, wie Sie sehen, nicht perfekt, denn das PopUp-Menü erscheint typischerweise an der Mausposition und nicht wie geplant unterhalb der Schaltfläche.

Die ShowPopup-Methode kennt noch zwei optionale Argumente für die X- und Y-Position des Menüs. Jetzt kommt das eigentliche Problem: Diese lassen sich in Word nicht ermitteln!

Es sind nicht etwa die Left- oder Top-Eigenschaften der Schaltfläche und hat schon gar nicht die gleichen Einheiten, die unter VBA üblich sind. Sie müssten hier plötzlich von Twips, also 1/567 cm, in Pixel umrechnen und daher auch noch die Bildschirmauflösung berücksichtigen. Das wäre dermaßen aufwändig, dass es in keinem Verhältnis zum Problem stünde.

Das Ganze funktioniert übrigens auch in Access: "Drop-Down-Menüs in Access-Formularen".

Diese Seite ist für Mitglieder von akademie.de reserviert.

Möchten Sie die Mitgliedschaft 14 Tage kostenlos testen und den Beitrag komplett lesen?

Oder möchten Sie zunächst mehr über diesen Beitrag erfahren und die Leseproben sehen?

Ich bin bereits Mitglied
Jetzt Probemitglied werden
Ich kann in den 14 Tagen Probezeit formlos z.B. per E-Mail stornieren. Wenn ich das nicht tue, entscheide ich mich für ein