Событие CommandBarComboBox.Change (Office)
Происходит, когда конечный пользователь изменяет выбор в поле со списком CommandBar .
Примечание.
Использование CommandBars в некоторых приложениях Microsoft Office было заменено новым компонентом ленты пользовательского интерфейса Microsoft Office Fluent. Дополнительные сведения см. в статье Обзор ленты Office Fluent.
Синтаксис
expression. Изменить (CTRL)
Выражение Переменная, представляющая объект CommandBarComboBox .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
CTRL | Обязательный | CommandBarComboBox | Представляет поле со списком CommandBar . |
Замечания
Событие Change распознается объектом CommandBarComboBox . Чтобы вернуть событие Change для определенного элемента управления CommandBarComboBox , используйте ключевое слово WithEvents для объявления переменной, а затем задайте для переменной элемент управления CommandBarComboBox . При активации события Change выполняется макрос или код, указанные с помощью свойства OnAction элемента управления .
Пример
В следующем примере создается панель команд с элементом управления CommandBarComboBox , содержащим четыре выделения. Поле со списком реагирует на взаимодействие с пользователем через событие CommandBarComboBox_Change .
Private ctlComboBoxHandler As New ComboBoxHandler
Sub AddComboBox()
Set HostApp = Application
Dim newBar As Office.CommandBar
Set newBar = HostApp.CommandBars.Add(Name:="Test CommandBar", Temporary:=True)
Dim newCombo As Office.CommandBarComboBox
Set newCombo = newBar.Controls.Add(msoControlComboBox)
With newCombo
.AddItem "First Class", 1
.AddItem "Business Class", 2
.AddItem "Coach Class", 3
.AddItem "Standby", 4
.DropDownLines = 5
.DropDownWidth = 75
.ListHeaderCount = 0
End With
ctlComboBoxHandler.SyncBox newCombo
newBar.Visible = True
End Sub
В предыдущем примере используется следующий код, который хранится в модуле класса в проекте VBA.
Private WithEvents ComboBoxEvent As Office.CommandBarComboBox
Public Sub SyncBox(box As Office.CommandBarComboBox)
Set ComboBoxEvent = box
If Not box Is Nothing Then
MsgBox "Synced " & box.Caption & " ComboBox events."
End If
End Sub
Private Sub Class_Terminate()
Set ComboBoxEvent = Nothing
End Sub
Private Sub ComboBoxEvent_Change(ByVal Ctrl As Office.CommandBarComboBox)
Dim stComboText As String
stComboText = Ctrl.Text
Select Case stComboText
Case "First Class"
FirstClass
Case "Business Class"
BusinessClass
Case "Coach Class"
CoachClass
Case "Standby"
Standby
End Select
End Sub
Private Sub FirstClass()
MsgBox "You selected First Class reservations"
End Sub
Private Sub BusinessClass()
MsgBox "You selected Business Class reservations"
End Sub
Private Sub CoachClass()
MsgBox "You selected Coach Class reservations"
End Sub
Private Sub Standby()
MsgBox "You chose to fly standby"
End Sub
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по