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

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

这是相当晚,但我认为这是重要的任何人试图做到这一点。

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

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

另请参阅CommandBars的MSDN文档 ,还有一个旧的Office 2000列表命令栏元素 。

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

我知道你不是在寻求一个C#解决scheme,但是我认为这样做是有用的,因为我从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 }