'========================================================================= ' EXCEL: ThisWorkbook Module '========================================================================= Option Explicit Private Sub Workbook_Activate() On Error Resume Next Application.CommandBars("My Menu").Visible = True On Error GoTo 0 End Sub Private Sub Workbook_Deactivate() On Error Resume Next Application.CommandBars("My Menu").Visible = False On Error GoTo 0 End Sub Private Sub Workbook_Open() Create_Menu End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Delete_Menu End Sub '========================================================================= ' WORD: ThisDocument Module '========================================================================= Option Explicit Private Sub Document_Close() Delete_Menu End Sub Private Sub Document_Open() Create_Menu End Sub '========================================================================= ' VBE: MenuModule Standard Module '========================================================================= Option Explicit Sub Create_Menu() Dim MyBar As CommandBar Dim MyPopup As CommandBarPopup Dim MyButton As CommandBarButton Delete_Menu Set MyBar = CommandBars.Add(Name:="My Menu", _ Position:=msoBarFloating, temporary:=True) With MyBar .Top = 125 .Left = 850 Set MyPopup = .Controls.Add(Type:=msoControlPopup) With MyPopup .Caption = "Popup 1" .BeginGroup = True Set MyButton = .Controls.Add(Type:=msoControlButton) With MyButton .Caption = "Button 1a" .Style = msoButtonCaption ''' msoButtonAutomatic, msoButtonIcon, msoButtonCaption, or msoButtonIconandCaption .BeginGroup = True .OnAction = "Macro1a" End With Set MyButton = .Controls.Add(Type:=msoControlButton) With MyButton .Caption = "Button 1b" .Style = msoButtonCaption .BeginGroup = False .OnAction = "Macro1b" End With End With Set MyPopup = .Controls.Add(Type:=msoControlPopup) With MyPopup .Caption = "Popup 2" .BeginGroup = False Set MyButton = .Controls.Add(Type:=msoControlButton) With MyButton .Caption = "Button 2a" .Style = msoButtonCaption .BeginGroup = True .OnAction = "Macro2a" End With Set MyButton = .Controls.Add(Type:=msoControlButton) With MyButton .Caption = "Button 2b" .Style = msoButtonCaption .BeginGroup = False .OnAction = "Macro2b" End With End With .Width = 100 .Visible = True End With End Sub Sub Delete_Menu() On Error Resume Next CommandBars("My Menu").Delete On Error GoTo 0 End Sub '=========================================================================