Veremos cómo de sencillo es personalizar nuestra Menú contextual sobre la hoja de cálculo con un sencillo procedimiento.
El sentido o utilidad de esto podría ser facilitar la ejecución de nuestras macros más recurrentes...
Supongamos tenemos en nuestro libro de trabajo dos macros llamadas: 'NuestraMacro01' y 'NuestraMacro02' (da igual qué hagan...).
Son macros importantes para nosotros y las empleamos con asiduidad.. por lo que necesitamos tenerlas a la vista fácilmente.
Así por tanto insertaremos en un módulo general el siguiente procedimiento (y ejecutaremos):
El resultado es el de la imagen del inicio.. tenemos a nuestra disposición haciendo un sencillo clic derecho con el ratón nuestras dos macros.
Notemos que en las propiedades .Caption he incorporado el símbolo & delante de la letra que deseo 'acelerar' (o que sirva de acceso rápido presionándola).
El sentido o utilidad de esto podría ser facilitar la ejecución de nuestras macros más recurrentes...
Supongamos tenemos en nuestro libro de trabajo dos macros llamadas: 'NuestraMacro01' y 'NuestraMacro02' (da igual qué hagan...).
Son macros importantes para nosotros y las empleamos con asiduidad.. por lo que necesitamos tenerlas a la vista fácilmente.
Así por tanto insertaremos en un módulo general el siguiente procedimiento (y ejecutaremos):
Sub AñadirMenuClicDerechoHoja()
Dim MenuContextual As CommandBar, MySubMenu As CommandBarControl
On Error Resume Next
'comenzamos borrando el grupo que tuviéramos...
With Application.CommandBars("Cell")
Call .Controls("Nuestro Grupo &Excelforo").Delete
End With
On Error GoTo 0
Set MenuContextual = Application.CommandBars("Cell")
'Situamos nuestro grupo en la parte inferior (no usamos el posicionador before:=x)
Set MySubMenu = MenuContextual.Controls.Add(Type:=msoControlPopup)
With MySubMenu
'Le damos nombre al grupo
.Caption = "Nuestro Grupo &Excelforo"
'añadimos un separador al grupo
.BeginGroup = True
'Nombre de la etiqueta para referirnos a ella con código si fuera necesario
.Tag = "ExcelforoGroup"
'Elemento 1
'Añadimos un botón
With .Controls.Add(Type:=msoControlButton)
'que ejecuta la macro que le indiquemos (debe existir!!)
.OnAction = "'" & ThisWorkbook.Name & "'!" & "NuestraMacro01"
'añadimos el icono número 59 (un 'smile')
.FaceId = 59
'mostramos el texto
.Caption = "Eje&cuta la macro 01"
End With
'Elemento 2
'Añadimos un botón
With .Controls.Add(Type:=msoControlButton)
'que ejecuta la macro que le indiquemos (debe existir!!)
.OnAction = "'" & ThisWorkbook.Name & "'!" & "NuestraMacro02"
'añadimos el icono número 64 (un 'teclado')
.FaceId = 64
'mostramos el texto
.Caption = "E&jecuta la macro 02"
End With
'etcétera, etcétera...
End With
'emplearíamos esto para resetear el Menú contextual!!!
'Application.CommandBars("Cell").Reset
End SubEl resultado es el de la imagen del inicio.. tenemos a nuestra disposición haciendo un sencillo clic derecho con el ratón nuestras dos macros.
Notemos que en las propiedades .Caption he incorporado el símbolo & delante de la letra que deseo 'acelerar' (o que sirva de acceso rápido presionándola).



No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.