VBA lernen - Excel 2007/2010 (1)
Unterschiede zur Vorgängerversion: Prozeduraufruf über Add-In-Menüleiste
Prozeduraufruf über Add-In-Menüleiste
Auf dieser Seite
Mit Bild
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".
Mit Bild
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.
Mit Bild
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.
Mit Bild
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
Mit Bild
Dem Menü müssen noch einzelne Befehle in das Menü eingetragen und den Prozeduren zugewiesen werden. Zwei Befehle werden so z. B. eingetragen.
Mit Bild
With CommandBars(1).Controls("Test")
Mit Bild
.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
Mit Bild
Aufgabe:
Öffnen Sie die Übungsdatei LösungMitarbeiter06.xlsm und sehen Sie sich die Prozedur Menü erstellen und alle davon aufgerufenen Prozeduren an.