Bỏ qua nội dung chính

Làm cách nào để chạy nhiều macro từ menu chuột phải trong Excel?

doc macro nhấp chuột phải 5

Nếu có nhiều macro vba trong sổ làm việc của bạn, bạn nên mở cửa sổ VBA và sau đó chọn macro khi bạn cần chạy mã. Trong bài viết này, tôi muốn nói về cách chạy macro từ menu chuột phải để làm cho công việc của bạn hiệu quả hơn như hình minh họa bên trái.

Chạy nhiều macro từ menu chuột phải với mã VBA


Chạy nhiều macro từ menu chuột phải với mã VBA

Để chạy mã macro trong sổ làm việc từ menu chuột phải, các bước sau có thể giúp bạn, vui lòng thực hiện như sau:

1. Lỗ xuống Alt + F11 phím để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. Sau đó, nhấp đúp vào Sổ làm việc này ở bên trái Dự án , sau đó sao chép và dán mã VBA bên dưới vào mô-đun trống.

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 nhấp chuột phải 1

3. Vẫn trong Microsoft Visual Basic cho các ứng dụng cửa sổ, vui lòng nhấp vào Chèn > Mô-đunvà dán mã sau vào mô-đun này.

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 nhấp chuột phải 2

4. Sau khi dán mã, hãy nhấp vào CÔNG CỤ > dự ánTài liệu tham khảo-VBAProject hộp thoại được hiển thị, sau đó kiểm tra Khả năng mở rộng Microsoft Visual Basic cho Ứng dụng 5.3 tùy chọn trong Tài liệu tham khảo có sẵn hộp danh sách, xem ảnh chụp màn hình:

doc macro nhấp chuột phải 3

5. Sau đó nhấn vào OK để thoát khỏi hộp thoại, bây giờ, bạn nên lưu sổ làm việc này dưới dạng Sổ làm việc hỗ trợ macro Excel định dạng, xem ảnh chụp màn hình:

doc macro nhấp chuột phải 4

6. Cuối cùng, vui lòng khởi động lại sổ làm việc để mã có hiệu lực và bây giờ, khi bạn nhấp chuột phải vào một ô, Chạy Macro tùy chọn được chèn vào menu chuột phải và tất cả các macro trong sổ làm việc của bạn được liệt kê trong menu con như ảnh chụp màn hình sau:

doc macro nhấp chuột phải 5

7. Sau đó, bạn có thể chạy mã chỉ bằng cách nhấp vào nó.


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