добавить элемент в контекстное меню в диаграмме Excel

Как добавить элемент в контекстное меню в диаграмме Excel с помощью VBA? Excel 2007 года. Диаграмма представляет собой отдельный лист.


person Community    schedule 24.06.2009    source источник


Ответы (3)


Это довольно поздно, но я подумал, что это важно для всех, кто пытается это сделать.

В Excel 2007 и 2010 нельзя изменить контекстные меню для диаграмм и фигур. Ошибок нет, но модификации просто не применяются. Microsoft знает об этом, по крайней мере, умные ребята в группе продуктов, но я считаю, что в этих версиях не планируется ничего для решения этой проблемы.

person Jon Peltier    schedule 23.03.2011

Вы хотите использовать коллекцию CommandBars, которая используется для контекстных меню в дополнение к панелям инструментов. Есть как минимум три контекстных меню — ячейка (щелчок правой кнопкой мыши по любой ячейке), строка и столбец (щелчок правой кнопкой мыши по заголовкам A, B, C или 1, 2, 3). Очень простой код для добавления нового элемента в контекстное меню строки приведен ниже.

См. также документацию MSDN для CommandBars, и есть старый список элементов панели команд Office 2000.

Sub AddToContextMenu()
    Dim element As CommandBarButton
    Set element = CommandBars("row").Controls.Add
    element.Caption = "Menu Item Name"
    element.OnAction = "VBAToRunOnRow"
End Sub
person Alistair Knock    schedule 26.06.2009

Я знаю, что вы не просите решения С#, но я подумал, что было бы полезно опубликовать его, так как я только что понял это из ответа Алистера:

public void AddContextMenuItem(Microsoft.Office.Interop.Excel.Application application, string label)
{
    var button = (CommandBarButton)application.CommandBars["cell"].Controls.Add();
    button.Caption = label;
    button.Click += button_Click;
}

void button_Click(CommandBarButton Ctrl, ref bool CancelDefault)
{
    //Button click
}
person Charlie    schedule 02.03.2010