Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Kontextmenü zur Auswahl von Arbeitsblättern aufrufen

Gruppe

Context

Problem

Wie kann ich mir bei Rechtsklick in einer Tabelle ein Kontextmenü mit der aktuellen Arbeitsblattauswahl anzeigen lassen und in das jeweils ausgewählte Arbeitsblatt springen?

Lösung
Geben Sie den Ereigniscode in das Klassenmodul der Arbeitsmappe ein.

ClassModule: DieseArbeitsmappe

Private Sub Workbook_SheetBeforeRightClick( _
   ByVal Sh As Object, ByVal Target As Excel.Range, _
   Cancel As Boolean)
   Dim oBar As CommandBar
   Dim oBtn As CommandBarButton
   Dim wks As Worksheet
   Cancel = True
   Call CmdDelete
   Set oBar = Application.CommandBars.Add("Register", msoBarPopup)
   For Each wks In ThisWorkbook.Worksheets
      Set oBtn = oBar.Controls.Add
      With oBtn
         .Caption = wks.Name
         .Style = msoButtonCaption
         .OnAction = "mnuAuswahl"
      End With
   Next wks
   oBar.ShowPopup
End Sub

StandardModule: basMain

Sub mnuAuswahl()
   Worksheets(Application.Caller(1)).Select
End Sub

Sub CmdDelete()
   On Error GoTo ERRORHANDLER
   Application.CommandBars("Register").Delete
ERRORHANDLER:
End Sub

    

Beiträge aus dem Excel-Forum zu den Themen Menue und Context