Excel'de sağ tık menüsünden birden fazla makroyu nasıl çalıştırabilirim?

Çalışma kitabınızda birden fazla VBA makrosu varsa, kodu çalıştırmak için öncelikle VBA penceresini açıp ardından istediğiniz makroyu seçmelisiniz. Bu makalede, işlerinizi daha verimli hale getirmeniz için sol ekran görüntüsünde gösterildiği gibi sağ tıklama menüsünden makroları nasıl çalıştıracağınızı anlatacağım.
VBA kodlarıyla sağ tıklama menüsünden birden fazla makroyu çalıştırın
VBA kodlarıyla sağ tıklama menüsünden birden fazla makroyu çalıştırın
Bir çalışma kitabındaki makro kodlarını sağ tıklama menüsünden çalıştırmak için aşağıdaki adımlar size yardımcı olabilir; lütfen şu şekilde yapın:
1. VBA penceresini açmak için Alt + F11 tuşlarına basılı tutun. Microsoft Visual Basic for Applications penceresi açılacaktır.
2. Ardından, Proje bölmesinde sol taraftaki ThisWorkbook öğesine çift tıklayın ve ardından 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. Hâlâ Microsoft Visual Basic for Applications penceresindeyken, lütfen Ekle > Modül seçeneğine tıklayıp 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 > Başvurular seçeneğine tıklayın. Karşınıza Başvurular - VBAProject iletişim kutusu gelecektir; burada Microsoft Visual Basic for Applications Extensibility 5,3 seçeneğini Kullanılabilir Başvurular listesinde işaretleyin; ekran görüntüsüne bakın:

5. Ardından iletişim kutusundan çıkmak için Tamam düğmesine tıklayın. Şimdi bu çalışma kitabını Excel Makro Etkin Çalışma Kitabı formatında kaydetmelisiniz; ekran görüntüsüne bakın:

6. Son olarak, kodların etkinleşmesi 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 Makroyu Çalıştır seçeneği eklenecek ve çalışma kitabınızdaki tüm makrolar aşağıdaki ekran görüntüsünde olduğu gibi alt menüde listelenecektir:

7. Böylece ilgili kodu sadece üzerine tıklayarak çalıştırabilirsiniz.
En İyi Office Verimlilik Araçları
Excel becerilerinizi Kutools for Excel ile güçlendirin ve hiç yaşanmamış bir verimlilik deneyimi yaşayın.Kutools for Excel, verimliliği artırmak ve Zamanı Kaydet için 300’den fazla gelişmiş özelliğe sahiptir.İhtiyacınız olan özelliği hemen edinmek için buraya tıklayın…
Office Tab, Office’e sekmeli arayüz getirir ve işlerinizi çok daha kolay hale getirir
- Word, Excel, PowerPoint, Publisher, Access, Visio ve Project’te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
- Birden fazla belgeyi yeni pencerelerde değil, aynı pencerenin yeni sekmelerinde açın ve oluşturun.
- Günlük verimliliğinizi %50 artırır ve her gün yüzlerce fare tıklamasından tasarruf etmenizi sağlar!
Tüm Kutools eklentileri — tek bir yükleyiciyle!
Kutools for Office paketi; Excel, Word, Outlook ve PowerPoint için eklentilerin yanı sıra Office Tab Pro’yu da içerir ve Office uygulamalarında çalışan ekipler için idealdir.
- Hepsi bir arada paket— Excel, Word, Outlook ve PowerPoint eklentileri + Office Tab Pro
- Tek yükleyici, tek lisans— birkaç dakikada kurulum (MSI uyumlu)
- Birlikte daha iyi çalışır— Office uygulamalarında akıcı verimlilik
- 30 günlük tam özellikli deneme— kayıt gerekmez, kredi kartı gerekmez
- En iyi fiyat performans— tek tek eklenti satın almaya göre tasarruf edin