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.

image

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.

image

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

You may also like...