Ga naar hoofdinhoud

Hoe meerdere macro's uitvoeren vanuit het rechtsklikmenu in Excel?

doc macro's voor rechtsklikken 5

Als er meerdere VBA-macro's in uw werkmap staan, moet u het VBA-venster openen en vervolgens de macro kiezen wanneer u de code moet uitvoeren. In dit artikel wil ik het hebben over het uitvoeren van macro's vanuit het rechtsklikmenu om uw werk efficiënter te maken, zoals het linker screenshot laat zien.

Voer meerdere macro's uit vanuit het rechtsklikmenu met VBA-codes


Voer meerdere macro's uit vanuit het rechtsklikmenu met VBA-codes

Om de macrocodes in een werkmap uit te voeren vanuit het rechtsklikmenu, kunnen de volgende stappen u helpen, doe dit als volgt:

1. Hole de Alt + F11 toetsen om de te openen Microsoft Visual Basic voor toepassingen venster.

2. Dubbelklik vervolgens Dit Werkboek links Project paneel en kopieer en plak vervolgens de onderstaande VBA-code in de lege module.

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 macro's voor rechtsklikken 1

3. Nog steeds in de Microsoft Visual Basic voor toepassingen venster, klik dan Invoegen > Module, en plak de volgende code in deze module.

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 macro's voor rechtsklikken 2

4. Nadat u de codes heeft geplakt, klikt u op Tools > ReferentiesEn een Referenties-VBAProject dialoogvenster wordt weergegeven en vink vervolgens aan Uitbreidbaarheid van Microsoft Visual Basic for Applications 5.3 optie in het Beschikbare referenties keuzelijst, zie screenshot:

doc macro's voor rechtsklikken 3

5. Dan klikken OK om het dialoogvenster te verlaten, moet u deze werkmap nu opslaan als Excel-werkmap met ingeschakelde macro's formaat, zie screenshot:

doc macro's voor rechtsklikken 4

6. Start ten slotte de werkmap opnieuw om het code-effect te krijgen, en nu, wanneer u met de rechtermuisknop op een cel klikt, wordt een Voer Macro uit optie wordt in het rechtsklikmenu ingevoegd en alle macro's in uw werkmap worden in het submenu weergegeven als volgende schermafbeelding:

doc macro's voor rechtsklikken 5

7. Vervolgens kunt u de code uitvoeren door erop te klikken.


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