Как добавить элемент в контекстное меню в диаграмме Excel с помощью VBA? Excel 2007 года. Диаграмма представляет собой отдельный лист.
добавить элемент в контекстное меню в диаграмме Excel
Ответы (3)
Это довольно поздно, но я подумал, что это важно для всех, кто пытается это сделать.
В Excel 2007 и 2010 нельзя изменить контекстные меню для диаграмм и фигур. Ошибок нет, но модификации просто не применяются. Microsoft знает об этом, по крайней мере, умные ребята в группе продуктов, но я считаю, что в этих версиях не планируется ничего для решения этой проблемы.
Вы хотите использовать коллекцию 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
Я знаю, что вы не просите решения С#, но я подумал, что было бы полезно опубликовать его, так как я только что понял это из ответа Алистера:
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
}