将项目添加到Excel图表中的右键菜单

时间:2009-06-24 19:59:45

标签: excel vba excel-vba menu charts

如何使用VBA将项目添加到Excel图表中的右键菜单? Excel是2007。 图表是独立工作表。

3 个答案:

答案 0 :(得分:6)

现在已经很晚了,但我认为这对其他人来说很重要。

在Excel 2007和2010中,您无法更改图表和形状的上下文菜单。没有错误,但修改不适用。微软知道这一点,至少是产品组中的聪明人,但我相信这些版本没有计划解决这个问题。

答案 1 :(得分:2)

您想要使用CommandBars集合,除了工具栏之外,它还用于上下文菜单。至少有三个上下文菜单 - 单元格(右键单击任何单元格),行和列(右键单击A,B,C或1,2,3标题)。下面是将新元素添加到行上下文菜单的基本代码。

另请参阅MSDN documentation for CommandBars,并且有一个old Office 2000 list of commandbar elements

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

答案 2 :(得分:0)

我知道你并没有要求提供C#解决方案,但我认为发布一个是有用的,因为我刚刚从Alistair的答案中解决了这个问题:

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
}