Как включить макрос для таблиц правой кнопкой мыши? - PullRequest
1 голос
/ 11 июня 2019

У меня есть следующий код, который отлично работает для обычных таблиц, но когда я пытаюсь щелкнуть правой кнопкой мыши по таблице, макрос не появляется.

Я попробовал следующее, но в первой строке выдается сообщение об ошибке «Требуется объект»:

With ContextMenuListRange.Controls.Add(Type:=msoControlButton, before:=2)
    .OnAction = "'" & ThisWorkbook.Name & "'!" & "macro"
    .Caption = "macro"
    .Tag = "My_Cell_Control_Tag"
End With

Ниже нормально работает с обычным листом.

With ContextMenu.Controls.Add(Type:=msoControlButton, before:=2)
    .OnAction = "'" & ThisWorkbook.Name & "'!" & "macro"
    .Caption = "macro"
    .Tag = "My_Cell_Control_Tag"
End With

Как мне появиться при щелчке правой кнопкой мыши по столу?

1 Ответ

2 голосов
/ 11 июня 2019

Попробуйте добавить кнопку в контекстное меню List Range Popup ...

With Application.CommandBars("List Range Popup").Controls.Add(Type:=msoControlButton, before:=2)
    .OnAction = "'" & ThisWorkbook.Name & "'!" & "macro"
    .Caption = "macro"
    .Tag = "My_Cell_Control_Tag"
End With

Вы можете использовать следующий макрос для создания списка всех контекстных меню ...

Sub ShowShortcutMenuNames()
    Dim Row As Long
    Dim cbar As CommandBar
    Row = 1
    For Each cbar In Application.CommandBars
        If cbar.Type = 2 Then 'msoBarTypePopUp
            Cells(Row, 1) = cbar.Index
            Cells(Row, 2) = cbar.Name
            Row = Row + 1
        End If
    Next cbar
End Sub

Надеюсь, это поможет!

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