I have a similar macro. This solution is nice since if you toggle between two workbooks but only wish to have the custom menu present in one of the two, your menu will only be available from the correct workbook. This is accomplished with the use of the following "AddMenus" and "DeleteMenu" macros, that fire with the Workbook_Activate and Workbook_Deactivate objects. First, add the following code to your ThisWorkbook Object:
Private Sub Workbook_Activate()
Run "AddMenus"
End Sub
And the next one...
Private Sub Workbook_Deactivate()
Run "DeleteMenu"
End Sub
Then, create a new module and add this code for the add and delete macros.
Sub AddMenus()
Dim cMenu1 As CommandBarControl
Dim cbMainMenuBar As CommandBar
Dim iHelpMenu As Integer
Dim cbcCutomMenu As CommandBarControl
'(1)Delete any existing one. We must use On Error Resume next _
in case it does not exist.
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar"

.Controls("&your name here"

.Delete
On Error GoTo 0
'(2)Set a CommandBar variable to Worksheet menu bar
Set cbMainMenuBar = _
Application.CommandBars("Worksheet Menu Bar"
'(3)Return the Index number of the Help menu. We can then use _
this to place a custom menu before.
iHelpMenu = _
cbMainMenuBar.Controls("Help"

.Index
'(4)Add a Control to the "Worksheet Menu Bar" before Help.
'Set a CommandBarControl variable to it
Set cbcCutomMenu = _
cbMainMenuBar.Controls.Add(Type:=msoControlPopup, _
Before:=iHelpMenu)
'(5)Give the control a caption
cbcCutomMenu.Caption = "&your name here"
'(6)Working with our new Control, add a sub control and _
give it a Caption and tell it which macro to run (OnAction).
With cbcCutomMenu.Controls.Add(Type:=msoControlButton)
.Caption = "Show Navigation Bar"
.OnAction = "ShowufMain"
End With
'(6a)Add another sub control give it a Caption _
and tell it which macro to run (OnAction)
With cbcCutomMenu.Controls.Add(Type:=msoControlButton)
.Caption = "Blank Menu"
.OnAction = ""
End With
'Repeat step "6a" for each menu item you want to add.
'Add another menu that will lead off to another menu
'Set a CommandBarControl variable to it
Set cbcCutomMenu = cbcCutomMenu.Controls.Add(Type:=msoControlPopup)
' Give the control a caption
cbcCutomMenu.Caption = "Ne&w Menu"
'Add a contol to the sub menu, just created above
With cbcCutomMenu.Controls.Add(Type:=msoControlButton)
.Caption = "&Charts"
.FaceId = 420
.OnAction = ""
End With
Set cbMainMenuBar = Nothing
Set cbcCutomMenu = Nothing
End Sub
Sub DeleteMenu()
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar"

.Controls("&your name here"

.Delete
On Error GoTo 0
End Sub
Give this a try.
Sky