При разработке интерфейса Вам может потребоваться использовать правую кнопку мыши для вызова контекстного меню. Как это сделать программным способом смотрите в этом разделе.
Dim WithEvents myCombo As CommandBarComboBox ' Обработка событий
Const strMenu As String = "Правая кнопка"
Private Sub Form_Open(Cancel As Integer)
' Определяем название
On Error Resume Next
CommandBars.Item(strMenu).Delete
Err.Clear
' Создаем панель меню
On Error GoTo 999
Dim myBar As CommandBar
Set myBar = CommandBars.Add(strMenu, msoBarPopup, , False)
' Добавляем 1 кнопку
Dim But As CommandBarButton
Set But = myBar.Controls.Add(msoControlButton)
With But
.Style = msoButtonCaption ' Выбираем стандартный тип
.FaceId = 1 ' Устанавливаем код кнопки
.Caption = "Кнопка 1" ' Называем кнопку
.OnAction = "=msgBox('Привет!')" ' Определяем программу
End With
' Создаем список в меню
Set myCombo = myBar.Controls.Add(msoControlDropdown, , 1)
With myCombo
.BeginGroup = True
.Caption = "Cписок: "
.Style = msoComboLabel
.AddItem "Строка 1"
.AddItem "Строка 2"
.ListIndex = 2 ' Устанавливаем 2 вариант
.DropDownWidth = -1 ' Выбираем ширину по самому длинному
End With
' Добавляем кнопки меню из других панелей
' (для нахождения кодов смотрите пример 05)
'
With CommandBars("Menu Bar")
.FindControl(, 523, , , True).Copy myBar ' Схема данных
.FindControl(, 210, , , True).Copy myBar ' Сортировка по возрастанию
.FindControl(, 211, , , True).Copy myBar ' Сортировка по убыванию
.FindControl(, 19, , , True).Copy myBar ' Копировать в буфер
End With
' Просмотр данных из текущей позиции
' myBar.ShowPopup
Exit Sub
999:
MsgBox Err.Description
End Sub
'==============================================================
' Отключение
Private Sub butOld_Enter()
Me.ShortcutMenuBar = ""
End Sub
'==============================================================
' Включение меню
Private Sub butNew_Enter()
Me.ShortcutMenuBar = strMenu
End Sub
'==============================================================
' Включение меню
Private Sub myCombo_Change(ByVal ctrl As CommandBarComboBox)
MsgBox "Текст: " ctrl.Text
End Sub