Thomas Risi Softwareentwicklung
Addins - Datenbanklösungen - Komponenten - RTDServer - WebServices

Kontextmenü für eine ListBox

Um einer ListBox, oder einem anderen Control, auf einer UserForm ein Kontextmenü anzuhängen, kann man so vorgehen.



Quellcode für normales Modul ...
Option Explicit ' Dieser Code wird ausgeführt, wenn MenuItem1 geklickt wird Private Sub Makro1() UserForm1.Caption = "Test" End Sub ' Diese Code wird ausgeführt, wenn MenuItem2 geklickt wird Private Sub Makro2() MsgBox "Test" End Sub ' Dieser Code wird ausgeführt, wenn MenuItem4 geklickt wird Private Sub Makro3() MsgBox "Ganz einfach ..." End Sub

Quellcode für die UserForm ...
Option Explicit Dim m_Menu As CommandBar ' Das Kontextmenü Dim m_MenuItem1 As CommandBarButton ' Menüpunkt 1 Dim m_MenuItem2 As CommandBarButton ' Menüpunkt 2 Dim m_MenuItem3 As CommandBarButton ' Menüpunkt 3 ' Wenn in der ListBox1 die rechte Maustaste gedrückt wird, dann ' öffnet sich das Kontextmenü. Private Sub ListBox1_MouseDown(ByVal Button As Integer, _ ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Button = 2 Then m_Menu.ShowPopup End Sub Private Sub UserForm_Initialize() ' Dummy-Einträge in die ListBox ListBox1.AddItem "Eintrag 1" ListBox1.AddItem "Eintrag 2" ListBox1.AddItem "Eintrag 3" On Error Resume Next CommandBars("TestMenu").Delete On Error GoTo 0 If m_Menu Is Nothing Then Set m_Menu = Application.CommandBars.Add(Name:="TestMenu", _ Position:=msoBarPopup, Temporary:=False) Set m_MenuItem1 = m_Menu.Controls.Add(msoControlButton) Set m_MenuItem2 = m_Menu.Controls.Add(msoControlButton) Set m_MenuItem3 = m_Menu.Controls.Add(msoControlButton) m_MenuItem1.Caption = "&MenuItem1" m_MenuItem2.Caption = "Menu&Item2" m_MenuItem3.Caption = "Me&nuItem3" m_MenuItem1.OnAction = "Makro1" m_MenuItem2.OnAction = "Makro2" m_MenuItem3.OnAction = "Makro3" End If End Sub

Wie nützlich finden Sie diesen Tipp?
1 2 3 4 5
Weniger nützlich Sehr nützlich
Bitte teilen Sie uns mit, warum Sie die Seite so bewertet haben. (optional)