VBA CommandBar не выполняет подпрограмму OnAction - PullRequest
0 голосов
/ 16 мая 2019

Следующий код ничего не делает в моем приложении Access.Я ожидал запустить Subrutine TestMacro .

. После выбора отображается меню, а не реакция.

Есть идеи?

Private Sub Check_Status_Click()
  Set The_Menu = CreateSubMenu
  The_Menu.ShowPopup
End Sub


Function CreateSubMenu() As CommandBar
  Const pop_up_menu_name = "Pop-up Menu"
  Dim the_command_bar As CommandBar
  Dim the_command_bar_control As CommandBarControl

  Set the_command_bar = CommandBars.Add(Name:=pop_up_menu_name, Position:=msoBarPopup, MenuBar:=False, Temporary:=False)
  Set the_command_bar_control = the_command_bar.Controls.Add
  the_command_bar_control.Caption = "Run Macro Hello World!"
  the_command_bar_control.OnAction = "TestMacro"
  Set CreateSubMenu = the_command_bar
End Function


Public Sub TestMacro()
  MsgBox "Hello World"
End Sub

1 Ответ

0 голосов
/ 16 мая 2019

Убедитесь, что TestMacro находится в общем модуле, а не в модуле формы.

Также перед добавлением нового меню удалите существующее, если оно существует:

On Error Resume Next
CommandBars.Item(pop_up_menu_name).Delete
On Error GoTo 0

В противном случае вы получите ошибку

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