VBA lernen - Excel 2007/2010 (1)

Unterschiede zur Vorgängerversion: Prozeduraufruf über Add-In-Menüleiste

∅ 4.4 / 13 Bewertungen

Prozeduraufruf über Add-In-Menüleiste

Auf dieser Seite

Die Menüs der Vorgängerversionen gibt es nicht mehr. Trotzdem sind VBA-Lösungen vorangegangener Excelversionen verwendbar. Programmierte eigene Menüs erscheinen automatisch in einer speziellen Multifunktionsleiste "Add-Ins".

Eigene Menüeinträge (Controls) werden der Auflistung CommandBars(1) mit Add hinzugefügt. Der Auflistung aller eigenen Einträge können Sie eine Beschriftung zuweisen.

Aufgabe:

Notieren Sie diese Prozeduren in Ihrer Arbeitsmappe Mitarbeiter.xlsm.

Sub Menüeintrag_erstellen()

CommandBars(1).Controls.Add Type:=msoControlPopup, before:=1

CommandBars(1).Controls(1).Caption = "Test"

End Sub

Sub rück()

CommandBars(1).Reset

End Sub

Rufen Sie die Prozeduren nacheinander auf und beobachten Sie die Anzeige der Multifunktionsleiste Add-ins.

Wiederholt gleiche "Vorsätze" in Anweisungen wie in

CommandBars(1).Controls.Add Type:=msoControlPopup, before:=1

CommandBars(1).Controls(1).Caption = "Test"

können Sie vereinfacht durch folgende Zusammenfassung schreiben

With CommandBars(1)

.Controls.Add Type:=msoControlPopup, before:=1

.Controls(1).Caption = "Test"

End With

Dem Menü müssen noch einzelne Befehle in das Menü eingetragen und den Prozeduren zugewiesen werden. Zwei Befehle werden so z. B. eingetragen.

With CommandBars(1).Controls("Test")

.Controls.Add Type:=msoControlButton

.Controls(1).Caption = "erfassen_und_sortieren" 'Menüeeintrag

.Controls(1).OnAction = "erfassen_und_sortieren" 'Zuweisen der Prozedur

.Controls.Add Type:=msoControlButton

.Controls(2).Caption = " Sortieren" 'Menüeeintrag

.Controls(2).OnAction = " Sortieren" 'Zuweisen der Prozedur

End With

Untermenüs lassen sich so einfügen

With CommandBars(1).Controls(3)

.Controls.Add Type:=msoControlPopup, before:=1

With .Controls(1)

.Caption = "Ansichten"

.Controls.Add msoControlButton

.BeginGroup = True 'schreibt Strich darüber

.Controls(1).Caption = "Telefonliste"

.Controls(1).OnAction = "Telefonliste"

.Controls(2).Caption = "fix"

.Controls(2).OnAction = "fixA"

'. usw.

End With

End With

Aufgabe:

Öffnen Sie die Übungsdatei LösungMitarbeiter06.xlsm und sehen Sie sich die Prozedur Menü erstellen und alle davon aufgerufenen Prozeduren an.