VBA lernen - Excel 2007/2010 (1)

Von: Dieter Frommhold
Stand: 14. Februar 2011
4.6
(10)
Beitrag bewerten
Anmelden um Kommentare zu schreiben

Unterschiede zur Vorgängerversion

Prozeduraufruf über Add-In-Menüleiste

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.

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

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

Dieser Beitrag ist öffentlich.
Zugriff auf alle Inhalte haben Sie als Mitglied

Werden Sie Probemitglied - kostenlos.

Ohne finanzielles Risiko haben Sie Zugriff auf alle Inhalte auf akademie.de, außer Downloads. Die Anmeldung dauert drei Minuten. Sie können während der ersten 14 Tage ohne Angabe von Gründen stornieren. Eine E-Mail genügt.

Weitere Informationen finden Sie auf unserer Infoseite zur Mitgliedschaft und in unseren AGB.

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