Direkt zum Inhalt

Wie führe ich mehrere Makros über das Kontextmenü in Excel aus?

doc Rechtsklick-Makros 5

Wenn Ihre Arbeitsmappe mehrere vba-Makros enthält, sollten Sie das VBA-Fenster öffnen und dann das Makro auswählen, wenn Sie den Code ausführen müssen. In diesem Artikel möchte ich darüber sprechen, wie Makros über das Kontextmenü ausgeführt werden, um Ihre Arbeit effizienter zu gestalten, wie im linken Screenshot gezeigt.

Führen Sie mehrere Makros über das Kontextmenü mit VBA-Codes aus


Führen Sie mehrere Makros über das Kontextmenü mit VBA-Codes aus

Die folgenden Schritte können hilfreich sein, um die Makrocodes in einer Arbeitsmappe über das Kontextmenü auszuführen: Gehen Sie folgendermaßen vor:

1. Loch runter Alt + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.

2. Doppelklicken Sie dann DiesesWorkbook in der linken Projekt Kopieren Sie den folgenden VBA-Code und fügen Sie ihn in das leere Modul ein.

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 Rechtsklick-Makros 1

3. Immer noch in der Microsoft Visual Basic für Applikationen Fenster, bitte klicken Insert > Modulund fügen Sie den folgenden Code in dieses Modul ein.

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 Rechtsklick-Makros 2

4. Klicken Sie nach dem Einfügen der Codes auf Tools > BibliographieUnd eine Referenzen-VBAProject Das Dialogfeld wird angezeigt, und überprüfen Sie es Erweiterbarkeit von Microsoft Visual Basic für Anwendungen 5.3 Option in der Verfügbare Referenzen Listenfeld, siehe Screenshot:

doc Rechtsklick-Makros 3

5. Dann klick OK Um den Dialog zu verlassen, sollten Sie diese Arbeitsmappe jetzt als speichern Excel Makroaktivierte Arbeitsmappe Format, siehe Screenshot:

doc Rechtsklick-Makros 4

6. Starten Sie zum Schluss die Arbeitsmappe neu, um den Codeeffekt zu erzielen. Wenn Sie nun mit der rechten Maustaste auf eine Zelle klicken, wird a Makro ausführen Die Option wird in das Kontextmenü eingefügt, und alle Makros in Ihrer Arbeitsmappe werden im Untermenü wie folgt aufgelistet:

doc Rechtsklick-Makros 5

7. Dann können Sie den Code ausführen, indem Sie einfach darauf klicken.


Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations