Comment exécuter plusieurs macros à partir du menu contextuel dans Excel?
S'il existe plusieurs macros vba dans votre classeur, vous devez ouvrir la fenêtre VBA, puis choisir la macro lorsque vous devez exécuter le code. Dans cet article, je voudrais parler de la façon d'exécuter des macros à partir du menu contextuel pour rendre votre travail plus efficace, comme illustré sur la capture d'écran de gauche.
Exécutez plusieurs macros à partir du menu contextuel avec des codes VBA
Exécutez plusieurs macros à partir du menu contextuel avec des codes VBA
Pour exécuter les codes de macro dans un classeur à partir du menu contextuel, les étapes suivantes peuvent vous aider, procédez comme suit:
1. Trou dans le Alt + F11 clés pour ouvrir le Microsoft Visual Basic pour applications fenêtre.
2. Ensuite, double-cliquez Ce classeur à gauche Projet volet, puis copiez et collez le code VBA ci-dessous dans le module vide.
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. Toujours dans le Microsoft Visual Basic pour applications fenêtre, veuillez cliquer insérer > Moduleet collez le code suivant dans ce 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. Après avoir collé les codes, cliquez sur Outils > Références Et un Références-VBAProject boîte de dialogue s'affiche, puis cochez Extensibilité de Microsoft Visual Basic pour Applications 5.3 option dans la Références disponibles zone de liste, voir capture d'écran:
5. Puis clique OK pour quitter la boîte de dialogue, vous devez maintenant enregistrer ce classeur sous Cahier de travail Excel avec macro-activé format, voir capture d'écran:
6. Enfin, veuillez redémarrer le classeur pour prendre l'effet des codes, et maintenant, lorsque vous cliquez avec le bouton droit sur une cellule, un Exécuter une macro L'option est insérée dans le menu contextuel et toutes les macros de votre classeur sont répertoriées dans le sous-menu comme la capture d'écran suivante:
7. Ensuite, vous pouvez exécuter le code simplement en cliquant dessus.
Meilleurs outils de productivité bureautique
Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office et facilite grandement votre travail
- Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!