Настраиваемая панель надстроек для стека - PullRequest
0 голосов
/ 21 октября 2019

У меня есть следующий код, который генерирует пользовательскую панель инструментов. Моя проблема в том, что, когда я добавляю больше кнопок / всплывающих окон, они располагаются друг относительно друга по горизонтали. что означает, что после добавления 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

1 Ответ

0 голосов
/ 28 октября 2019

Изменяя следующее, оно работает:

CommandBars.Add

на

CommandBars.Button.Add
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...