У меня есть следующий код, который генерирует пользовательскую панель инструментов. Моя проблема в том, что, когда я добавляю больше кнопок / всплывающих окон, они располагаются друг относительно друга по горизонтали. что означает, что после добавления 4/5, он имеет тенденцию занимать огромное количество. Есть ли способ, которым их можно сложить в вертикальный список из 3, как на панели команд меню?
Sub CreateMyMenu()
Dim myCB As CommandBar
Dim myCBtn1 As CommandBarButton
Dim myCBtn2 As CommandBarButton
Dim myCPup1 As CommandBarPopup
Dim myCPup2 As CommandBarPopup
Dim myCP1Btn1 As CommandBarButton
Dim myCP1Btn2 As CommandBarButton
' Delete the CommandBar if it exists already
On Error Resume Next
Application.CommandBars("MyMenu").Delete
' Create a new CommandBar
Set myCB = CommandBars.Add(Name:="MyMenu", Position:=msoBarFloating)
' Add button 1 to this bar
Set myCBtn1 = myCB.Controls.Add(Type:=msoControlButton)
With myCBtn1
.Caption = "1st Button"
.Style = msoButtonCaption '<- force caption text to show on your button
End With
' Add popup menu 1 to this bar - this is a menu that folds out
Set myCPup1 = myCB.Controls.Add(Type:=msoControlPopup)
myCPup1.Caption = "Statistics"
' Add button 1 to popup menu 1
Set myCP1Btn1 = myCPup1.Controls.Add(Type:=msoControlButton)
With myCP1Btn1
.Style = msoButtonAutomatic
.FaceId = 487
End With
' Add button 2 to popup menu 1
Set myCP1Btn1 = myCPup1.Controls.Add(Type:=msoControlButton)
With myCP1Btn1
.Caption = "Click me!"
.Style = msoButtonIconAndCaption
.FaceId = 59
.OnAction = "SubItworks" '<- call the sub routine SubItWorks
End With
' Add a second button to this bar
Set myCBtn2 = myCB.Controls.Add(Type:=msoControlButton)
With myCBtn2
.FaceId = 17 ' <- Face Id 17 is a barchart icon
.Caption = "Barchart" '<- shows when hovering mouse over icon
End With
' Add popup menu 1 to this bar - this is a menu that folds out
Set myCPup1 = myCB.Controls.Add(Type:=msoControlPopup)
myCPup1.Caption = "Settings"
' Show the command bar
myCB.Visible = True
End Sub
Private Sub SubItWorks()
MsgBox ("Eureka, it works!")
End Sub