Пользовательское меню правой кнопкой мыши Excel-надстройка не загружается - PullRequest
0 голосов
/ 19 ноября 2018

Я использовал учебник Рона де Брюина , чтобы создать пользовательское меню правой кнопки мыши.Это не проблема при использовании его в типе файла XLSM, но когда я пытаюсь превратить его в надстройку Excel, меню правой кнопки мыши не появляется.Есть ли что-то конкретное, что мне нужно добавить в код, чтобы включить его?

Код, который я использовал в 'ThisWorkbook':

Private Sub Workbook_Activate()
Call AddToCellMenu
End Sub

Private Sub Workbook_Deactivate()
Call DeleteFromCellMenu
End Sub

Код, который я использовал в отдельном модуле::

Sub AddToCellMenu()
Dim ContextMenu As CommandBar
Dim MySubMenu As CommandBarControl

Call DeleteFromCellMenu

Set ContextMenu = Application.CommandBars("Cell")

Set MySubMenu = ContextMenu.Controls.Add(Type:=msoControlPopup, before:=3)

With MySubMenu
    .Caption = "Recruitment"
    .Tag = "My_Cell_Control_Tag"

    With .Controls.Add(Type:=msoControlButton)
        .OnAction = "'" & ThisWorkbook.Name & "'!" & "Rejections"
        .FaceId = 97
        .Caption = "Format Rejections"
    End With
    With .Controls.Add(Type:=msoControlButton)
        .OnAction = "'" & ThisWorkbook.Name & "'!" & "Hires"
        .FaceId = 87
        .Caption = "Format Hires"
    End With

End With

ContextMenu.Controls(4).BeginGroup = True
End Sub



Sub DeleteFromCellMenu()
Dim ContextMenu As CommandBar
Dim ctrl As CommandBarControl

Set ContextMenu = Application.CommandBars("Cell")

For Each ctrl In ContextMenu.Controls
    If ctrl.Tag = "My_Cell_Control_Tag" Then
        ctrl.Delete
    End If
Next ctrl

On Error Resume Next
ContextMenu.FindControl(ID:=3).Delete
On Error GoTo 0
End Sub

Отклонения и наймы - это два макроса, которые я прошу для вызова.Это простые макросы, которые, я знаю, работают нормально, поэтому не потрудились добавить код для них.

...