Skip to main content

Excel에서 마우스 오른쪽 버튼 메뉴를 통해 여러 매크로를 실행하는 방법은 무엇입니까?

Author: Xiaoyang Last Modified: 2025-08-06
run multiple macros from right click menu

워크북에 여러 개의 VBA 매크로가 있는 경우, 코드를 실행해야 할 때마다 VBA 창을 열고 해당 매크로를 선택해야 합니다. 이 문서에서는 왼쪽 스크린샷에 표시된 것처럼 마우스 오른쪽 버튼 메뉴를 통해 매크로를 실행하여 작업 효율성을 높이는 방법에 대해 설명하겠습니다.

VBA 코드를 사용하여 마우스 오른쪽 버튼 메뉴에서 여러 매크로 실행하기


VBA 코드를 사용하여 마우스 오른쪽 버튼 메뉴에서 여러 매크로 실행하기

워크북 내에서 마우스 오른쪽 버튼 메뉴를 통해 매크로 코드를 실행하려면 다음 단계를 따라 주세요:

1. Alt + F11 키를 눌러 Microsoft Visual Basic for Applications 창을 엽니다.

2. 그런 다음 왼쪽 프로젝트 창에서 ThisWorkbook을 두 번 클릭하고 아래 VBA 코드를 복사하여 비어 있는 모듈에 붙여넣습니다.

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

paste code into the ThisWorkbook module

3. 여전히 Microsoft Visual Basic for Applications 창에 있는 상태에서 삽입 > 모듈을 클릭한 후, 다음 코드를 해당 모듈에 붙여넣습니다.

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

paste code into the normal module

4. 코드를 붙여넣은 후 도구 > 참조를 클릭하면 References-VBAProject 대화 상자가 나타납니다. 사용 가능한 참조 목록 상자에서 Microsoft Visual Basic for Applications Extensibility 5.3 옵션을 체크하세요. 스크린샷 참고:

check Microsoft Visual Basic for Applications Extensibility 5.3 in References dialog box

5. 그런 다음 확인을 클릭하여 대화 상자를 종료합니다. 이제 이 워크북을 Excel 매크로 사용 가능 워크북 형식으로 저장해야 합니다. 스크린샷 참고:

save the workbook as Excel Macro-Enabled Workbook format

6. 마지막으로, 코드가 적용되도록 워크북을 다시 시작하세요. 이제 셀을 마우스 오른쪽 버튼으로 클릭하면 '매크로 실행' 옵션이 마우스 오른쪽 버튼 메뉴에 추가되고, 워크북의 모든 매크로가 하위 메뉴에 나열됩니다. 다음 스크린샷 참고:

when right clicking a cell, all macros in your workbook are listed in submenu

7. 이제 해당 코드를 실행하려면 그냥 클릭만 하면 됩니다.



최고의 오피스 생산성 도구

🤖 Kutools AI Aide: 지능형 실행을 기반으로 데이터 분석 혁신 지능형 실행   |  코드 생성  |  사용자 정의 수식 생성  |  데이터 분석 및 차트 생성  |  Kutools Functions 호출
인기 기능: 중복 찾기, 강조 또는 중복 표시  |  빈 행 삭제  |  데이터 손실 없이 열 또는 셀 병합  |  반올림...
슈퍼 LOOKUP: 다중 조건 VLookup    다중 값 VLookup  |   다중 시트 조회   |   퍼지 매치 ....
고급 드롭다운 목록: 드롭다운 목록 신속 생성  |  의존형 드롭다운 목록  |  다중 선택 드롭다운 목록....
열 매니저: 지정 개수 열 추가  |  열 이동  |  숨겨진 열 표시 상태 전환 |  범위 및 열 비교 ...
주요 기능: 그리드 포커스  |  디자인 보기  |  향상된 수식 표시줄   통합 문서 & 시트 관리   |  자동 텍스트 라이브러리   |  날짜 선택기   |  데이터 병합   |  셀 암호화/해독   목록별 이메일 보내기  |  슈퍼 필터  |  특수 필터 (굵게/이탤릭/취소선 필터...)...
Top15 도구 세트12개 텍스트 도구(텍스트 추가, 특정 문자 삭제, ...)  |  50+ 차트 유형(간트 차트, ...)  |  40+ 실용 수식(생일을 기반으로 나이 계산, ...)  |  19개 삽입 도구(QR 코드 삽입, 경로에서 그림 삽입, ...)  |  12개 변환 도구(단어로 변환하기, 통화 변환, ...)  |  7개 병합 & 분할 도구(고급 행 병합, 셀 분할, ...)  |  ... 그리고 그 외
Kutools를 원하는 언어로 사용하세요 – 영어, 스페인어, 독일어, 프랑스어, 중국어 등40가지 이상의 언어를 지원합니다!

Kutools for Excel로 Excel 실력을 한 단계 업그레이드하고, 그 어떤 때보다 뛰어난 효율성을 경험하세요. Kutools for Excel은300개 이상의 고급 기능을 제공하여 생산성을 높이고 저장 시간을 줄여줍니다. 가장 필요한 기능을 지금 바로 확인하세요...


Office Tab이 오피스에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다

  • Word, Excel, PowerPoint에서 탭 기반 편집과 읽기를 활성화합니다.
  • 여러 문서를 새 창이 아닌 동일한 창의 새 탭에서 열고 생성하세요.
  • 생산성이50% 향상되며, 매일 수백 번의 마우스 클릭을 줄일 수 있습니다!