Private Sub CommandButton1_Click()
Dim cBar As CommandBar
Set cBar = Application.CommandBars.Add(Name:="ButtonMenu", Position:=msoBarPopup, Temporary:=True)
' 새로운 메뉴를 추가합니다.
Dim cCtrl As CommandBarControl
Set cCtrl = cBar.Controls.Add(Type:=msoControlPopup, Temporary:=True)
cCtrl.Caption = "새로운 메뉴"
cCtrl.Tag = "NewMenu"
' 새로운 메뉴에 하위 메뉴를 추가합니다.
Dim subCtrl As CommandBarControl
Set subCtrl = cCtrl.Controls.Add(Type:=msoControlButton, Temporary:=True)
subCtrl.Caption = "메뉴1"
subCtrl.OnAction = "Menu1_Clicked"
Set subCtrl = cCtrl.Controls.Add(Type:=msoControlButton, Temporary:=True)
subCtrl.Caption = "메뉴2"
subCtrl.OnAction = "Menu2_Clicked"
' 이벤트 핸들러를 연결합니다.
Application.CommandBars("ButtonMenu").Enabled = True
Set cBar = Nothing
Set cCtrl = Nothing
Set subCtrl = Nothing
' 메뉴를 보여줍니다.
CommandBarShowPopup cBar
End Sub
' 메뉴 클릭 이벤트 핸들러입니다.
Sub Menu1_Clicked()
' 메뉴 1 클릭 시 실행될 코드를 작성합니다.
End Sub
Sub Menu2_Clicked()
' 메뉴 2 클릭 시 실행될 코드를 작성합니다.
End Sub
아래는 우클릭시 팝업메뉴
Private Sub UserForm_Initialize()
Dim cBar As CommandBar
Set cBar = Application.CommandBars.Add(Name:="UserFormMenu", Position:=msoBarPopup, Temporary:=True)
' 새로운 메뉴를 추가합니다.
Dim cCtrl As CommandBarControl
Set cCtrl = cBar.Controls.Add(Type:=msoControlPopup, Temporary:=True)
cCtrl.Caption = "새로운 메뉴"
cCtrl.Tag = "NewMenu"
' 새로운 메뉴에 하위 메뉴를 추가합니다.
Dim subCtrl As CommandBarControl
Set subCtrl = cCtrl.Controls.Add(Type:=msoControlButton, Temporary:=True)
subCtrl.Caption = "메뉴1"
subCtrl.OnAction = "Menu1_Clicked"
Set subCtrl = cCtrl.Controls.Add(Type:=msoControlButton, Temporary:=True)
subCtrl.Caption = "메뉴2"
subCtrl.OnAction = "Menu2_Clicked"
' 이벤트 핸들러를 연결합니다.
Application.CommandBars("UserFormMenu").Enabled = True
Set cBar = Nothing
Set cCtrl = Nothing
Set subCtrl = Nothing
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' 메뉴를 삭제합니다.
On Error Resume Next
Application.CommandBars("UserFormMenu").Delete
Set cBar = Nothing
End Sub
' 메뉴 클릭 이벤트 핸들러입니다.
Sub Menu1_Clicked()
' 메뉴 1 클릭 시 실행될 코드를 작성합니다.
End Sub
Sub Menu2_Clicked()
' 메뉴 2 클릭 시 실행될 코드를 작성합니다.
End Sub
'엑셀 > vba' 카테고리의 다른 글
셀 값이 배열에 있는지 비교 chatgpt (0) | 2023.04.10 |
---|---|
잔액 구하기 chatgpt (0) | 2023.04.06 |
userform 팝업메뉴 만들기 (0) | 2023.02.24 |
시트 이동 chatgpt (0) | 2023.02.23 |
두셀의 값을 바꾸기 chatgpt (0) | 2023.02.23 |