Всем здравия!
Надстройкой создается панель инструментов и на неё добавляются кнопки и раскрывающийся список, например, так:
Но никак не могу нормально извлечь данные из раскрывающегося списка.
Цель: по нажатию кнопки вызывается процедура с параметром, извлеченным из раскрывающегося списка.
Точнее, по нажатию кнопки вызывается вспомогательная процедура (без параметра), которая, в свою очередь, должна получить данные из ComboBox.
И вот здесь затык.
Пытался по .OnAction вызывать вспомогательную процедуру и из неё получить данные ComboBox, но тоже не удалось.
С ComboBox на формах никаких проблем нет, а что делать с CommandBars, прошу подсказать.
В сети очень мало информации о ComboBox на CommandBars, если помножить это на мой малый опыт в VBA (немного программировал более 10 лет назад), получается туго.
Прошу помочь.
Надстройкой создается панель инструментов и на неё добавляются кнопки и раскрывающийся список, например, так:
| Код |
|---|
Sub Auto_open() Панель_App End Sub |
| Код |
|---|
Public Sub Панель_App() Const MyBarName As String = "Approximation" Dim myBar As CommandBar, FindBar As Boolean FindBar = False 'Проверка наличия панели среди всех панелей For Each myBar In Application.CommandBars If myBar.Name = MyBarName Then FindBar = True Exit For End If Next 'Если панель не найдена, создать её и отобразить If Not FindBar Then Set myBar = Application.CommandBars.Add(Name:=MyBarName, Temporary:=False) 'End If myBar.Visible = True 'Создать на панели кнопки Set myControl = Application.CommandBars(myBar.Index).Controls.Add(Type:=msoControlButton, Before:=1) With myControl .Style = ButtonStyle .FaceId = 422 .Caption = "" .TooltipText = "" .OnAction = "App1" End With Set myControl = Application.CommandBars(myBar.Index).Controls.Add(Type:=msoControlComboBox, Before:=2) With myControl .Caption = "Order" '.ControlTipText = "" .AddItem Text:="1 вариант", Index:=1 .AddItem Text:="2 вариант", Index:=2 .DropDownLines = 3 .DropDownWidth = 65 .ListHeaderCount = 0 .OnAction = "App2" .ListIndex = 5 '.Value = "1 вариант" ', Index:=1 End With End If End Sub |
Но никак не могу нормально извлечь данные из раскрывающегося списка.
Цель: по нажатию кнопки вызывается процедура с параметром, извлеченным из раскрывающегося списка.
Точнее, по нажатию кнопки вызывается вспомогательная процедура (без параметра), которая, в свою очередь, должна получить данные из ComboBox.
И вот здесь затык.
Пытался по .OnAction вызывать вспомогательную процедуру и из неё получить данные ComboBox, но тоже не удалось.
С ComboBox на формах никаких проблем нет, а что делать с CommandBars, прошу подсказать.
В сети очень мало информации о ComboBox на CommandBars, если помножить это на мой малый опыт в VBA (немного программировал более 10 лет назад), получается туго.
Прошу помочь.
Изменено: - 15.12.2021 13:23:44