¿Cómo ejecutar varias macros desde el menú de clic derecho en Excel?

Si hay varias macros VBA en su libro de trabajo, debe abrir la ventana de VBA y luego seleccionar la macro cuando necesite ejecutar el código. En este artículo, me gustaría hablar sobre cómo ejecutar macros desde el menú de clic derecho para hacer que su trabajo sea más eficiente, como se muestra en la captura de pantalla de la izquierda.
Ejecutar múltiples macros desde el menú de clic derecho con códigos VBA
Ejecutar múltiples macros desde el menú de clic derecho con códigos VBA
Para ejecutar los códigos de macros dentro de un libro de trabajo desde el menú de clic derecho, los siguientes pasos pueden ayudarlo, por favor haga lo siguiente:
1. Mantenga presionadas las teclas Alt + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. Luego, haga doble clic en ThisWorkbook en el panel Proyecto de la izquierda, y luego copie y pegue el siguiente código VBA en el módulo en blanco.
Private Sub Workbook_Open()
Run "LoadMacro"
End Sub
Private Sub Workbook_Activate()
Run "LoadMacro"
End Sub
Private Sub Workbook_Deactivate()
Run "ClearMacro"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Run "ClearMacro"
ThisWorkbook.Save
End Sub
3. Todavía en la ventana de Microsoft Visual Basic para Aplicaciones, haga clic en Insertar > Módulo, y pegue el siguiente código en este módulo.
Private Sub LoadMacro()
Dim xArrMenu As Variant
Dim xStrLine, xSreBtnName As String
Dim xObjCBCF, xObjCntrAll As CommandBarControl
Dim xObjCBCs As CommandBars
Dim xObjCBBtn As CommandBarButton
Dim xIntLine, xFNum As Integer
Dim xObjComponent As Object
Run "ClearMacro"
Set xObjCBCF = Application.CommandBars("Cell").Controls.Add(msoControlPopup, before:=1)
xObjCBCF.Caption = " Run Macro "
xObjCBCF.BeginGroup = False
For Each xObjComponent In ActiveWorkbook.VBProject.VBComponents
If xObjComponent.Type = 1 Then
For xIntLine = 1 To xObjComponent.CodeModule.CountOfLines
xStrLine = xObjComponent.CodeModule.Lines(xIntLine, 1)
xStrLine = Trim(xStrLine)
If (InStr(xStrLine, "()") > 0) And (Left(xStrLine, 11) = "Private Sub" Or Left(xStrLine, 3) = "Sub") Then
xSreBtnName = ""
If "Private Sub" = Left(xStrLine, 11) Then
xSreBtnName = Trim(Mid(xStrLine, 12, InStr(xStrLine, "()") - 12))
ElseIf "Sub" = Left(xStrLine, 3) Then
xSreBtnName = Trim(Mid(xStrLine, 4, InStr(xStrLine, "()") - 4))
End If
If xSreBtnName <> "" And xSreBtnName <> "RightClickReset" And xSreBtnName <> "LoadMacro" And xSreBtnName <> "ActionMacro" Then
Set xObjCBBtn = xObjCBCF.Controls.Add
With xObjCBBtn
.FaceId = 186
.Style = msoButtonIconAndCaption
.Caption = xSreBtnName
.OnAction = "ActionMacro"
End With
End If
End If
Next xIntLine
End If
Next xObjComponent
End Sub
Private Sub ClearMacro()
On Error Resume Next
CommandBars("Cell").Controls(" Run Macro ").Delete
Err.Clear
CommandBars("Cell").Reset
End Sub
Private Sub ActionMacro()
On Error GoTo Err1
With Application
Run .CommandBars("Cell").Controls(1).Controls(.Caller(1)).Caption
End With
Exit Sub
Err1:
MsgBox "Invalid"
End Sub
4. Después de pegar los códigos, haga clic en Herramientas > Referencias, y aparecerá un cuadro de diálogo Referencias-VBAProject, y luego marque la opción Microsoft Visual Basic para Aplicaciones Extensibility 5.3 en el cuadro de lista de Referencias Disponibles, vea la captura de pantalla:
5. Luego haga clic en Aceptar para salir del cuadro de diálogo, ahora, debe guardar este libro de trabajo en formato Libro de Trabajo Habilitado para Macros de Excel, vea la captura de pantalla:
6. Por último, reinicie el libro de trabajo para que surtan efecto los códigos, y ahora, cuando haga clic derecho en una celda, se insertará una opción Ejecutar Macro en el menú de clic derecho, y todas las macros en su libro de trabajo se enumerarán en el submenú como se muestra en la siguiente captura de pantalla:
7. Luego puede ejecutar el código simplemente haciendo clic en él.
Las mejores herramientas de productividad para Office
Potencia tus habilidades en Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...
Office Tab lleva la interfaz de pestañas a Office y facilita mucho tu trabajo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de nuevas ventanas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!