Consejo: Otros idiomas son traducidos por Google. Puedes visitar el English versión de este enlace.
Iniciar sesión
x
or
x
x
Suscríbete
x

or

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

Como se muestra a continuación, muchas personas tienden a agregar sus funciones de uso frecuente al menú de Excel con el botón derecho para usar 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ú contextual en Excel.

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


flecha azul burbuja derechaAgregar botón personalizado al menú contextual en Excel con código VBA


Supongamos que ha creado un script de 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. Por favor 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, doble clic ThisWorkbook En la izquierda Proyecto cristal. Y luego copie y pegue el siguiente código de VBA en el ThisWorkbook (Código) ventana.

Código 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

Notas: En el código, reemplace todo "MyMacro" con el nombre de Macro que ha creado en su Excel.

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

Ahora que 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 disparará la Macro correspondiente de inmediato.


flecha azul burbuja derechaArtículos relacionados:



Herramientas de productividad recomendadas para Excel

Kutools para Excel lo ayuda a terminar el trabajo antes de tiempo y sobresalir de la multitud

  • Más que las potentes funciones avanzadas de 300, diseñadas para los escenarios de trabajo 1500, aumentando la productividad en un 70%, le dan más tiempo para cuidar de la familia y disfrutar de la vida.
  • Ya no es necesario memorizar fórmulas y códigos de VBA, dale un descanso a tu cerebro de ahora en adelante.
  • Conviértase en un experto en Excel en minutos 3. Las operaciones complicadas y repetidas se pueden realizar en segundos.
  • Reduzca miles de operaciones de teclado y mouse todos los días, despídase ahora de las enfermedades profesionales.
  • 110,000 personas altamente efectivas y 300 + elección de compañías de renombre mundial.
  • 60-day completo de prueba gratuita de características. Garantías de devolución del dinero de 60-day. 2 años de actualización y soporte gratis.

Trae la navegación y edición con pestañas a Microsoft Office, mucho más poderosa que las pestañas del navegador

  • La pestaña Office está diseñada para Word, Excel, PowerPoint y otras aplicaciones de Office: 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 tu productividad en un 50% y reduce cientos de clics de ratón por ti todos los días!
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    MFouad · 8 months ago
    Thanks
    Does that working for all workbooks even after restarting Excel, or only for the selected workbook which saved the macro in?
    • To post as a guest, your comment is unpublished.
      Виктор · 1 months ago
      Размести код в отдельном модуле, для того чтобы это работало для всех документов
    • To post as a guest, your comment is unpublished.
      crystal · 8 months ago
      Hi,
      It only works for the workbook which save the macro in. Thank you for your comment.
  • To post as a guest, your comment is unpublished.
    Vic · 1 years ago
    Add VBA button to context menu works well. Thanks. How do I add more buttons ? (not good at VBA, hence the question).
    • To post as a guest, your comment is unpublished.
      crystal · 7 months ago
      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
      • To post as a guest, your comment is unpublished.
        Mike · 4 months ago
        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