Добавить и удалить меню в 2016 году - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть таблица, содержащая макросы, которая помещает элемент меню в надстройки и удаляет его при закрытии. Это не работает, теперь я обновлен до Office 2016. Код для добавления находится в Workbook_Open:

Dim UtilityMenu As CommandBarControl, Level1 As CommandBarControl
Dim ctl As CommandBarControl, UTBar As CommandBar

Set UtilityMenu = Application.CommandBars(1).Controls.Add(Type:=msoControlPopup, Before:=8, temporary:=False)
UtilityMenu.Caption = MENUNAME

    Set Level1 = UtilityMenu.Controls.Add(Type:=msoControlButton)
    With Level1
        .Caption = "&Ungroup"
        .OnAction = "Ungroup"
        .FaceId = 239
    End With

и т.д.

Это только добавляет меню к открытому в настоящее время окну, даже если открыто несколько рабочих книг.

Код для закрытия:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ctl As CommandBarControl

For Each ctl In Application.CommandBars(1).Controls
    If ctl.Caption = MENUNAME Then ctl.Delete
Next

End Sub
...