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 Sub
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).
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.