Lanzar tu propio menú contextual al dar click derecho en las etiquetas de hojas de Excel
Les comparto una macro que nos permitirá añadir opciones al menú contextual que por default sale cuando damos click derecho en alguna etiqueta de alguna hoja.
Figura 1. Menú contextual al dar click derecho en una etiqueta de hoja.
La macro deberá ejecutarse al momento de abrir el archivo o complemento. Ya vimos en Funciones personalizadas UDF en Excel disponibles en todos los archivos abiertos cómo tener macros disponibles para todos los archivos.
Opciones añadidas
Al momento de abrir el archivo se añadirán 5 opciones al menú, las cuales llamarán a 5 macros de ejemplo.
Figura 2. Lanzar macros desde menú de click derecho.
Macros
Al iniciar el archivo lanzamos la macro para crear el menú y al cerrarlo ejecutamos la macro para eliminarlo.
Ubicación: Objetos ThisWorkbook.
Private Sub Workbook_Open() ' Call AddMenuSheetTab ' End Sub ' Private Sub Workbook_BeforeClose(Cancel As Boolean) ' Call DeleteMenuSheetTab ' End Sub
Código de la macro para crear el menú.
Ubicación: Módulo1.
'--------------------------------------------------------------------------------------- ' Module : Módulo1 ' Author : MVP Excel, Sergio Alejandro Campos ' Date : 19/11/2014 ' Purpose : Añadir opciones a menú de click derecho ' Web : http://www.exceleinfo.com '--------------------------------------------------------------------------------------- ' 'Macro para eliminar el menú Sub DeleteMenuSheetTab() On Error Resume Next ' For i = 1 To 5 ' CommandBars("Ply").Controls("Macro" & i).Delete ' Next i ' End Sub ' 'Macro para añadir el menú Sub AddMenuSheetTab() ' Dim Bar As CommandBar Dim NewControl As CommandBarButton DeleteMenuSheetTab ' Set Bar = CommandBars("Ply") ' Set NewControl = Bar.Controls.Add _ (Type:=msoControlButton, _ temporary:=True) With NewControl .Caption = "Macro1" .OnAction = "M1" .BeginGroup = True .FaceId = 84 'E .Style = msoButtonIconAndCaption End With ' Set NewControl = Bar.Controls.Add _ (Type:=msoControlButton, _ temporary:=True) With NewControl .Caption = "Macro2" .OnAction = "M2" .BeginGroup = True .FaceId = 103 'X .Style = msoButtonIconAndCaption End With ' Set NewControl = Bar.Controls.Add _ (Type:=msoControlButton, _ temporary:=True) With NewControl .Caption = "Macro3" .OnAction = "M3" .BeginGroup = True .FaceId = 82 'C .Style = msoButtonIconAndCaption End With ' Set NewControl = Bar.Controls.Add _ (Type:=msoControlButton, _ temporary:=True) With NewControl .Caption = "Macro4" .OnAction = "M4" .BeginGroup = True .FaceId = 84 'E .Style = msoButtonIconAndCaption End With ' Set NewControl = Bar.Controls.Add _ (Type:=msoControlButton, _ temporary:=True) With NewControl .Caption = "Macro5" .OnAction = "M5" .BeginGroup = True .FaceId = 91 'L .Style = msoButtonIconAndCaption End With ' End Sub
Código de las macros de ejemplo
Ubicación: Módulo2
Sub M1() ' MsgBox "Mensaje de ejemplo al dar click en el menú", vbInformation, "EXCELeINFO" ' End Sub ' Sub M2() ' MsgBox "Mensaje de ejemplo al dar click en el menú", vbInformation, "EXCELeINFO" ' End Sub ' Sub M3() ' MsgBox "Mensaje de ejemplo al dar click en el menú", vbInformation, "EXCELeINFO" ' End Sub ' Sub M4() ' MsgBox "Mensaje de ejemplo al dar click en el menú", vbInformation, "EXCELeINFO" ' End Sub ' Sub M5() ' MsgBox "Mensaje de ejemplo al dar click en el menú", vbInformation, "EXCELeINFO" ' End Sub
Anexos
:: Descargar Menú al dar click derecho en etiquetas de hojas en Excel.rar