Hoe voert u meerdere macro’s uit via het rechtermuisknopmenu in Excel?

Als uw werkmap meerdere VBA-macro’s bevat, opent u het VBA-venster en selecteert u de gewenste macro wanneer u de code wilt uitvoeren. In dit artikel bespreek ik hoe u macro’s via het rechtermuisknopmenu kunt uitvoeren om uw werk efficiënter te maken, zoals te zien is op de linker screenshot.
Voer meerdere macro's uit via het rechtermuisknopmenu met VBA-code
Voer meerdere macro's uit via het rechtermuisknopmenu met VBA-code
Om macrocode in een werkmap uit te voeren via het rechtermuisknopmenu, volgt u deze eenvoudige stappen:
1. Houd de toetsen Alt + F11 ingedrukt om het Microsoft Visual Basic for Applications-venster te openen.
2. Dubbelklik vervolgens op ThisWorkbook in het linker Project-deelvenster en kopieer de onderstaande VBA-code naar 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

3. Blijf in het Microsoft Visual Basic for Applications-venster en klik op 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

4. Nadat u de code hebt geplakt, klikt u op Extra > Verwijzingen, waarna het dialoogvenster Verwijzingen - VBAProject wordt weergegeven. Schakel vervolgens de optie Microsoft Visual Basic for Applications Extensibility 5,3 in bij de lijst Beschikbare verwijzingen. Zie de screenshot:

5. Klik daarna op OK om het dialoogvenster te sluiten. Sla deze werkmap nu op als Excel-werkmap met macro's ingeschakeld-formaat, zie de screenshot:

6. Start tenslotte de werkmap opnieuw om de code te activeren. Zodra u met de rechtermuisknop op een cel klikt, verschijnt de optie Macro uitvoeren in het contextmenu, met alle macro’s uit uw werkmap netjes ondergebracht in een submenu—zoals u op de volgende screenshot kunt zien:

7. U kunt de code nu eenvoudig uitvoeren door erop te klikken.
Beste Office-productiviteitshulpmiddelen
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie zoals nooit tevoren.Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en Tijd besparen.Klik hier om de functie te krijgen die u het meest nodig heeft...
Office Tab brengt een tabbladinterface naar Office en maakt uw werk veel eenvoudiger
- Schakel tabbladbewerking en -lezen in voor Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten aan in nieuwe tabbladen binnen hetzelfde venster, in plaats van in afzonderlijke vensters.
- Verhoogt uw productiviteit met 50 % en bespaart u dagelijks honderden muisklikken!
Alle Kutools-add-ins in één installatieprogramma.
Kutools for Office bundelt add-ins voor Excel, Word, Outlook en PowerPoint, plus Office Tab Pro—ideaal voor teams die met meerdere Office-apps werken.
- Alles-in-één suite— add-ins voor Excel, Word, Outlook & PowerPoint plus Office Tab Pro
- Één installatieprogramma, één licentie— binnen enkele minuten klaar (MSI-geschikt)
- Werkt beter samen— gestroomlijnde productiviteit in alle Office-apps
- 30 dagen volledig functionele proefversie— geen registratie, geen creditcard
- Beste prijs-kwaliteitverhouding— bespaar ten opzichte van het afzonderlijk kopen van add-ins