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 ejecutar múltiples macros desde el menú contextual en Excel?

doc haga clic derecho en macros 5

Si hay varias macros vba en su libro de trabajo, debe abrir la ventana de VBA y luego elegir la macro cuando necesite ejecutar el código. En este artículo, me gustaría hablar sobre cómo ejecutar macros desde el menú contextual para hacer que tu trabajo sea más eficiente ya que se muestra la captura de pantalla izquierda.

Ejecute varias macros desde el menú contextual con códigos VBA


Ejecute varias macros desde el menú contextual con códigos VBA

Para ejecutar los códigos de macro dentro de un libro de trabajo desde el menú contextual, los siguientes pasos pueden ayudarlo, por favor haga lo siguiente:

1. Hoyo abajo Alt + F11 teclas para abrir el Microsoft Visual Basic para aplicaciones ventana.

2. Luego, haz doble clic ThisWorkbook En la izquierda Proyecto y luego copie y pegue el siguiente código de 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

doc haga clic derecho en macros 1

3. Aún en el Microsoft Visual Basic para aplicaciones ventana, por favor haga clic recuadro > Móduloy 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

doc haga clic derecho en macros 2

4. Después de pegar los códigos, haga clic Herramientas > Referencias, Y un Referencias-VBAProject cuadro de diálogo y luego verifique Extensibilidad de Microsoft Visual Basic para Aplicaciones 5.3 opción en el Referencias disponibles cuadro de lista, ver captura de pantalla:

doc haga clic derecho en macros 3

5. Luego haga clic OK para salir del diálogo, ahora, debe guardar este libro de trabajo como Libro de trabajo habilitado para macros de Excel formato, ver captura de pantalla:

doc haga clic derecho en macros 4

6. Por último, reinicie el libro de trabajo para tomar el efecto de los códigos, y ahora, cuando hace clic derecho en una celda, Ejecutar macro la opción se inserta en el menú del clic derecho, y todas las macros en su libro de trabajo se enumeran en el submenú como la siguiente captura de pantalla:

doc haga clic derecho en macros 5

7. Luego puede ejecutar el código simplemente haciendo clic en él.


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.

Be the first to comment.