View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Troispieds Troispieds is offline
external usenet poster
 
Posts: 2
Default Creating sub menu in Command bar

Thanks for your quick response. At the moment I don't know how I can manage
your suggestion. Therefore I added my source coed below. Perhaps you might
help me again. Again thanks in advance.

Cheers,

Florian


Sub add_toolbar()

Dim Cbar As CommandBar

Dim cbpop As CommandBarControl
Dim cbctl As CommandBarControl
Dim cbsub As CommandBarControl

Set Cbar = CommandBars("myToolbar")
Cbar.Visible = True

Set cbpop = Cbar.Controls.Add(Type:=msoControlPopup, Temporary:=True)
cbpop.Caption = "my_first_Popup"
cbpop.Visible = True


Set cbsub = cbpop.Controls.Add(Type:=msoControlPopup)
cbsub.Visible = True
cbsub.BeginGroup = True
cbsub.Caption = "my_Second_Popup"


Set cbctl = cbsub.Controls.Add(Type:=msoControlButton)
cbctl.Visible = True
cbctl.Style = msoButtonCaption
cbctl.Caption = "my_firt_button_in_the_second_popup"
cbctl.OnAction = ""


End Sub




"Greg Wilson" wrote:

The answer is no. However, instead of using a msoControlPopup, you can create
a popup type toolbar and call it using a regular msoControlButton (which
supports a FaceId). The affect is about the same.

Note that this method is sometimes advantagious because the macro can be
used to change the status of controls on the popup toolbar (e.g. enabled
property etc.) before showing the toolbar; whereas the click event of the
msoControlPopup cannot be accessed before the dropdown (or popup toolbar ?)
is displayed. You would have to use other, less convenient, events to
initiate change of the control properties.

Regards,
Greg

"Troispieds" wrote:

Hi All,

it is possible to add an image (icon) to the msoControlPopup, like it is the
case for the msoControlButton ?For answers thanks in advance.

Cheers,

Florian

"Greg Wilson" wrote:

For the sake of brevity, I only show how to:
1) Create a new toolbar
2) Add a popup type control (that supports menu items) to the toolbar
2) Add menu items to the popup control (menu control)
3) Add a popup control (that supports submenu items) to the first popup
control
4) Add submenu items to the second popup control
5) Use arrays and loops to drastically cut down on the code requirement.

You can continue the same branching process indefinately to my knowledge.

Regards,
Greg

Sub MakeNewMenu()
Dim CB As CommandBar
Dim NewMenu As CommandBarControl
Dim MenuItm As CommandBarControl
Dim SubMenuItm As CommandBarControl
Dim Arr1 As Variant, Arr2 As Variant
Dim Arr3 As Variant
Dim i As Integer

With Application
.ScreenUpdating = False
'Menu item caption list
Arr1 = Array("Caption 1", "Caption 2", _
"Caption 3", "Caption 4", "Caption 5")
'Menu item macro list
Arr2 = Array("Menu macro 1", "Menu macro 2", _
"Menu macro 3", "Menu macro 4", "Menu macro 5")
'Menu item FaceId list
Arr3 = Array(100, 101, 102, 103, 104)
Set CB = .CommandBars.Add("Data Analysis", Temporary:=True)
Set NewMenu = CB.Controls.Add(msoControlPopup)
NewMenu.Caption = "Menu items"
'ToolTipText supported on this level only
NewMenu.TooltipText = "Select from my macros"

'When referencing elements in an array, the first
'element has an index value of zero (hence 0 to 4)
For i = 0 To 4
Set MenuItm = NewMenu.Controls.Add
With MenuItm
.Caption = Arr1(i)
.Style = msoButtonIconAndCaption
.OnAction = Arr2(i)
.FaceId = Arr3(i)
End With
Next
'Submenu item caption list
Arr1 = Array("Caption 6", "Caption 7", "Caption 8", _
"Caption 9", "Caption 10")
'Submenu item macro list
Arr2 = Array("Submenu macro 1", "Submenu macro 2", _
"Submenu macro 3", "Submenu macro 4", "Submenu macro 5")
'Submenu item FaceId list
Arr3 = Array(200, 201, 202, 203, 204)
'Now add popup type control to support the submenus
Set MenuItm = NewMenu.Controls.Add(msoControlPopup)
MenuItm.Caption = "Sub menu items"
For i = 0 To 4
Set SubMenuItm = MenuItm.Controls.Add
With SubMenuItm
.Caption = Arr1(i)
.Style = msoButtonIconAndCaption
.OnAction = Arr2(i)
.FaceId = Arr3(i)
End With
Next
CB.Visible = True
DoEvents
.ScreenUpdating = True
End With
End Sub

"Anders" wrote:

Hi all,

I would like to create a command bar that contains a menu with sub menues.
Do anyone know how to do this?

Menu
-------
Menu Item1
Menu Item2 - Sub menu item - Sub sub menu item

Regards
Anders