Excel'de sağ tıklama menüsünden birden fazla makro nasıl çalıştırılır?

Çalışma kitabınızda birden fazla VBA makrosu varsa, kodu çalıştırmak için VBA penceresini açmalı ve ardından makroyu seçmelisiniz. Bu makalede, sol taraftaki ekran görüntüsünde gösterildiği gibi, iş akışınızı daha verimli hale getirmek için sağ tıklama menüsünden makroları nasıl çalıştıracağımı anlatmak istiyorum.
VBA kodlarıyla sağ tıklama menüsünden birden fazla makro çalıştırma
VBA kodlarıyla sağ tıklama menüsünden birden fazla makro çalıştırma
Sağ tıklama menüsünden bir çalışma kitabındaki makro kodlarını çalıştırmak için aşağıdaki adımlar size yardımcı olabilir, lütfen şu şekilde devam edin:
1. Microsoft Visual Basic for Applications penceresini açmak için Alt + F11 tuşlarına basın.
2. Ardından, sol taraftaki Proje bölmesinde ThisWorkbook öğesine çift tıklayın ve aşağıdaki VBA kodunu boş modüle kopyalayıp yapıştırın.
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. Hala Microsoft Visual Basic for Applications penceresindeyken, lütfen Ekle > Modül'e tıklayın ve aşağıdaki kodu bu modüle yapıştırın.
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. Kodları yapıştırdıktan sonra, Araçlar > Referanslar'a tıklayın ve ekrana bir Referanslar-VBAProject iletişim kutusu gelecektir. Kullanılabilir Referanslar listesi kutusunda Microsoft Visual Basic for Applications Extensibility 5.3 seçeneğini işaretleyin, aşağıdaki ekran görüntüsüne bakın:
5. Ardından Tamam'a tıklayarak iletişim kutusundan çıkın. Şimdi, bu çalışma kitabını Excel Makro Etkin Çalışma Kitabı formatında kaydetmelisiniz, aşağıdaki ekran görüntüsüne bakın:
6. Son olarak, lütfen kodların etkili olması için çalışma kitabını yeniden başlatın. Artık bir hücreye sağ tıkladığınızda, sağ tıklama menüsüne bir Makro Çalıştır seçeneği eklenir ve çalışma kitabınızdaki tüm makrolar alt menüde listelenir, aşağıdaki ekran görüntüsüne bakın:
7. Daha sonra kodu çalıştırmak için üzerine tıklamanız yeterlidir.
En İyi Ofis Verimlilik Araçları
Kutools for Excel ile Excel becerilerinizi geliştirin ve daha önce hiç olmadığı kadar verimli olun. Kutools for Excel, üretkenliğinizi artırmak ve zamanınızı kaydetmek için300'den fazla gelişmiş özellik sunar. En çok ihtiyacınız olan özelliği almak için buraya tıklayın...
Office Tab, Office'e sekmeli arayüz getirir ve işinizi çok daha kolaylaştırır
- Word, Excel, PowerPoint'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
- Aynı pencerenin yeni sekmelerinde birden fazla belge açın ve oluşturun, yeni pencerelerde değil.
- Verimliliğinizi %50 artırır ve her gün yüzlerce fare tıklamasını azaltır!