Makro zum Kontextmenü hinzufügen

Makro zum Kontextmenü hinzufügen

11. Oktober 2021 0 Von Björn Meijer

Wenn Sie ein bestimmtes Makro häufig verwenden, kann es hilfreich sein, es dem Kontextmenü hinzuzufügen (das Menü, das angezeigt wird, wenn Sie mit der rechten Maustaste auf eine Zelle klicken).

Öffnen Sie dazu den VBA-Editor und platzieren Sie den folgenden Code in ThisWorkbook.

Private Sub Workbook_Open() Dim MyContextMenu As Object Set MyContextMenu = Application.ShortcutMenus(xlWorksheetCell) _ .MenuItems.AddMenu("My Custom Menu Item", 1) With MyContextMenu.MenuItems .Add "Swap Two Cells", "SwapTwoCells", , 1, , "" .Add "My macro 2", "MyMacro2", , 2, , "" End With Set MyContextMenu = Nothing End Sub

Der obige Code erstellt einen Menüpunkt in der obersten Zeile mit der Bezeichnung „Mein benutzerdefinierter Menüpunkt“. Innerhalb dieses Menüpunktes werden dann zwei Makros hinzugefügt:

  • SwapTwoCells (angezeigt als Swap Two Cells);
  • Mein Makro2 (angezeigt als Mein Makro 2).

Platzieren Sie den folgenden Code in einem Modul oder unter dem obigen Code.
Die Funktion SwapTwoCells tauscht die Werte aus zwei ausgewählten Zellen.

Macro2 zeigt ein Meldungsfeld mit der Aufschrift „Macro2 aus einem Kontextmenü“ an.

Sub SwapTwoCells() Dim sHolder As String If Selection.Cells.Count = 2 Then With Selection sHolder = .Cells(1).formula If .Areas.Count = 2 Then ' Cells selected using Ctrl key .Areas(1).formula = .Areas(2).formula .Areas(2).formula = sHolder Else ' Benachbarte Zellen werden ausgewählt .Cells(1).formula = .Cells(2).formula .Cells(2).formula = sHolder End If End With Else MsgBox "Nur ZWEI Zellen zum Tauschen auswählen", vbCritical End If End Sub Public Sub mymacro2() MsgBox "Macro2 aus einem Kontextmenü" End Sub

Schließen Sie Ihr Excel-Dokument und speichern Sie es. Sobald Sie es erneut öffnen, wurde Ihr Kontextmenü um einen zusätzlichen Menüpunkt erweitert.