¿Cómo ejecutar varias macros desde el menú contextual de Excel?

Si su libro de trabajo contiene varias macros de VBA, debería abrir la ventana de VBA y seleccionar la macro correspondiente cada vez que necesite ejecutar el código. En este artículo le explicaré cómo ejecutar macros directamente desde el menú contextual para agilizar su trabajo, tal como se muestra en la captura de pantalla de la izquierda.
Ejecutar varias macros desde el menú contextual con códigos VBA
Ejecutar varias macros desde el menú contextual con códigos VBA
Para ejecutar los códigos de macro de un libro de trabajo desde el menú contextual, los siguientes pasos pueden ayudarle; por favor, hágalo de la siguiente manera:
1. Mantenga pulsadas las teclas Alt + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. A continuación, haga doble clic en EsteLibro en el panel izquierdo del Explorador de proyectos y 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. Tras pegar los códigos, haga clic en Herramientas > Referencias y aparecerá el cuadro de diálogo Referencias: ProyectoVBA. Marque la opción Extensibilidad de Microsoft Visual Basic para Aplicaciones 5,3 en el cuadro de lista Referencias disponibles. Véase la captura de pantalla:

5. A continuación, haga clic en Aceptar para cerrar el cuadro de diálogo. Ahora debe guardar este libro de trabajo en formato de Libro de Excel habilitado para macros. Véase la captura de pantalla:

6. Por último, reinicie el libro de trabajo para que los códigos surtan efecto. Ahora, al hacer clic con el botón derecho en una celda, aparecerá la opción Ejecutar macro en el menú contextual, y todas las macros de su libro de trabajo se mostrarán en un submenú, tal como se ve en la siguiente captura de pantalla:

7. Así podrá ejecutar el código con solo hacer clic en él.
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active 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 dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos