Saltar al contenido principal

¿Cómo agregar un botón personalizado al menú contextual / contextual en Excel?

Como se muestra a continuación en las capturas de pantalla, muchas personas tienden a agregar sus funciones de uso frecuente al menú contextual de Excel para poder utilizar rápidamente estas funciones con un solo clic en el futuro. Este artículo habla de agregar un botón de código personalizado al menú del botón derecho en Excel.

Agregue un botón personalizado al menú contextual en Excel con código VBA


Agregue un botón personalizado al menú contextual en Excel con código VBA

Supongamos que ha creado un script VBA llamado MyMacro en su Excel, y ahora necesita agregar esta función al menú contextual para ejecutar el código simplemente haciendo clic en él. Haz lo siguiente.

1. presione el otro + F11 teclas simultáneamente para abrir el Microsoft Visual Basic para aplicaciones ventana.

2. En el Microsoft Visual Basic para aplicaciones ventana, haga doble clic ThisWorkbook En la izquierda Proyecto cristal. Y luego copie y pegue el siguiente código VBA en el ThisWorkbook (Código) ventana.

Código de VBA: agregue un botón personalizado al menú contextual en Excel

Private Sub Workbook_Deactivate()
    On Error Resume Next
        With Application
            .CommandBars("Cell").Controls("MyMacro").Delete
        End With
    On Error GoTo 0
End Sub

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Dim cmdBtn As CommandBarButton
    On Error Resume Next
        With Application
            .CommandBars("Cell").Controls("MyMacro").Delete
            Set cmdBtn = .CommandBars("Cell").Controls.Add(Temporary:=True)
        End With

        With cmdBtn
           .Caption = "MyMacro"
           .Style = msoButtonCaption
           .OnAction = "MyMacro"
        End With
    On Error GoTo 0
End Sub

Note: En el código, reemplace todos "MiMacro" con el nombre de la macro que ha creado en su Excel.

3. presione el otro + Q llaves para salir del Microsoft Visual Basic para aplicaciones ventana.

Ahora regresa a la interfaz de Excel, después de hacer clic derecho en una celda, verá que el nuevo botón con el nombre especificado se agrega al menú contextual como se muestra a continuación. Haga clic en el botón para activar la macro correspondiente inmediatamente.


Artículos relacionados:

Las mejores herramientas de productividad de oficina

🤖 Asistente de IA de Kutools: Revolucionar el análisis de datos basado en: Ejecución inteligente   |  Generar codigo  |  Crear fórmulas personalizadas  |  Analizar datos y generar gráficos  |  Invocar funciones de Kutools...
Características populares: Buscar, resaltar o identificar duplicados   |  Eliminar filas en blanco   |  Combine columnas o celdas sin perder datos   |   Ronda sin fórmula ...
Super búsqueda: Búsqueda virtual de criterios múltiples    Búsqueda V de valores múltiples  |   VLookup en varias hojas   |   Búsqueda difusa ....
Lista desplegable avanzada: Crear rápidamente una lista desplegable   |  Lista desplegable dependiente   |  Lista desplegable de selección múltiple ....
Administrador de columnas: Agregar un número específico de columnas  |  Mover columnas  |  Toggle Estado de visibilidad de columnas ocultas  |  Comparar rangos y columnas ...
Características destacadas: Enfoque de cuadrícula   |  Vista de diseño   |   Gran barra de fórmulas    Administrador de hojas y libros de trabajo   |  Biblioteca de Recursos (Texto automático)   |  Selector de fechas   |  Combinar hojas de trabajo   |  Cifrar/descifrar celdas    Enviar correos electrónicos por lista   |  Súper filtro   |   Filtro especial (filtro negrita/cursiva/tachado...) ...
Los 15 mejores conjuntos de herramientas12 Texto Herramientas (Añadir texto, Quitar caracteres, ...)   |   50+ Tabla Tipos (Diagrama de Gantt, ...)   |   40+ Práctico Fórmulas (Calcular la edad según el cumpleaños, ...)   |   19 Inserción Herramientas (Insertar código QR, Insertar imagen desde la ruta, ...)   |   12 Conversión Herramientas (Números a palabras, Conversión de Moneda, ...)   |   7 Fusionar y dividir Herramientas (Filas combinadas avanzadas, Células partidas, ...)   |   ... y más

Mejore sus habilidades de Excel con Kutools for Excel y experimente la eficiencia como nunca antes. Kutools for Excel ofrece más de 300 funciones avanzadas para aumentar la productividad y ahorrar tiempo.  Haga clic aquí para obtener la función que más necesita...

Descripción


Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
Comments (15)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Zdravím dokázal byste mi prosím někdo poradit s podobným problémem? Po posledním updatu Office přibyla v excelu po stisknutí pravého tlačítka nad kopírovat a vyjmout volba hledat v nabídkách která mi tam vadí a chtěl bych jí odstranit. Dá se to udělat i obráceně a nějakou funkci odstranit?

děkuji
This comment was minimized by the moderator on the site
Hi Tomáš,
I have not encountered this situation. Can you attach a screenshot to describe the problem you encountered more clearly.
This comment was minimized by the moderator on the site
Bonjour,

Je déterre le sujet car j'ai un soucis, j'ai récupérer un fichier qui m'a remplacé le menu du click droit et je ne sais pas comment revenir au menu par défaut...
Ça a modifier le menu pour n'importe quel fichier excel. J'utilise excel 2016.

Je précise que le fichier coupable a un mot de passe pour accéder à son code VBA. Mot de passe qu’évidemment je ne possède pas..

Merci d'avance pour votre aide !!
This comment was minimized by the moderator on the site
Hi Olivier,
Sorry I don't quite understand what you mean. Do you mean to back to the normal right-clicking menu?
This comment was minimized by the moderator on the site
Thanks
Does that working for all workbooks even after restarting Excel, or only for the selected workbook which saved the macro in?
This comment was minimized by the moderator on the site
Размести код в отдельном модуле, для того чтобы это работало для всех документов
This comment was minimized by the moderator on the site
Hi,
It only works for the workbook which save the macro in. Thank you for your comment.
This comment was minimized by the moderator on the site
Add VBA button to context menu works well. Thanks. How do I add more buttons ? (not good at VBA, hence the question).
This comment was minimized by the moderator on the site
Hi Vic,
The following VBA code can help you solve the problem, please have a try.

Private Sub Workbook_Deactivate()
Dim xArrB As Variant
Dim xFNum As Integer
Dim xStr As String
On Error Resume Next
With Application
xArrB = Array("MyMacro01", "MyMacro02", "MyMacro03")
For xFNum = 0 To UBound(xArrB)
xStr = xArrB(xFNum)
.CommandBars("Cell").Controls(xStr).Delete
Next xFNum
End With
On Error GoTo 0
End Sub

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim cmdBtn As CommandBarButton
Dim xArrB As Variant
Dim xFNum As Integer
Dim xStr As String
On Error Resume Next
xArrB = Array("MyMacro01", "MyMacro02", "MyMacro03")
For xFNum = 0 To UBound(xArrB)
xStr = xArrB(xFNum)
With Application
.CommandBars("Cell").Controls(xStr).Delete
Set cmdBtn = .CommandBars("Cell").Controls.Add(Temporary:=True)
End With
With cmdBtn
.Caption = xStr
.Style = msoButtonCaption
.OnAction = xStr
End With
Next xFNum
On Error GoTo 0
End Sub
This comment was minimized by the moderator on the site
This doesn't work for me, I have done exactly the same as the above macro with only one menu, Does it work for anyone else or am I doing something wrong?

Thanks
This comment was minimized by the moderator on the site
Don t work with my Excel 2013
This comment was minimized by the moderator on the site
Hi Yves,I tested this code on Excel 2013 and it works fin. Did you get any error prompt? I need to know more specific about your issue
This comment was minimized by the moderator on the site
Thanks for your answerBut doesn't work on a table. On normal cell is work perfectly.
This comment was minimized by the moderator on the site
Hi yves,The problem is clear now, and I need time to fix it. Please wait. Thank you for your feedback.
This comment was minimized by the moderator on the site
Thanks a lot
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations