Thread: NewMenu
View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Jim Cone Jim Cone is offline
external usenet poster
 
Posts: 3,290
Default NewMenu

jrh,

A possibility...
The code should be in a general ( regular, everyday ) module.
It should not be in a class module such as ThisWorkbook or one of the sheet modules. Calling command bars in a class module
requires the "Application" prefix: "Application.CommandBars"

Regards,
Jim Cone
San Francisco, CA

"jrh" wrote in message ...
I used the code from the book Power Programming by Walkenbach to make a new menu upon opening a certain workbook. However, I get

the following error message "Run Time Error '91'. Object variable or With block variable not set" and it highlights the line of
code that is "Set HelpMenu = CommandBars(1).FindControl(ID:=30010)".

Can you help? Here is the code:
Sub CreateMenu()
Dim NewMenu As CommandBarPopup
' Delete the menu if it already exists
Call DeleteMenu
' Find the Help Menu
Set HelpMenu = CommandBars(1).FindControl(ID:=30010)
If HelpMenu Is Nothing Then
' Add the menu to the end
Set NewMenu = CommandBars(1).Controls.Add _
(Type:=msoControlPopup, _
temporary:=True)
Else
' Add the menu before Help
Set NewMenu = CommandBars(1).Controls.Add _
(Type:=msoControlPopup, _
Befo=HelpMenu.Index, _
temporary:=True)
End If
' Add a caption for the menu
NewMenu.Caption = "&Budgeting"
' FIRST MENU ITEM
Set MenuItem = NewMenu.Controls.Add _
(Type:=msoControlButton)
With MenuItem
.Caption = "&Data Entry..."
.FaceId = 162
.OnAction = "Macro1"
End With
' SECOND MENU ITEM
Set MenuItem = NewMenu.Controls.Add _
(Type:=msoControlButton)
With MenuItem
.Caption = "&Generate Reports..."
.FaceId = 590
.OnAction = "Macro2"
End With
' THIRD MENU ITEM
Set MenuItem = NewMenu.Controls.Add _
(Type:=msoControlPopup)
With MenuItem
.Caption = "View &Charts"
.BeginGroup = True
End With
' FIRST SUBMENU ITEM
Set SubMenuItem = MenuItem.Controls.Add _
(Type:=msoControlButton)
With SubMenuItem
.Caption = "Monthly &Variance"
.FaceId = 420
.OnAction = "Macro3"
End With
' SECOND SUBMENU ITEM
Set SubMenuItem = MenuItem.Controls.Add _
(Type:=msoControlButton)
With SubMenuItem
.Caption = "Year-To-Date &Summary"
.FaceId = 422
.OnAction = "Macro4"
End With
End Sub