Excel VBA:右键单击一个形状,并添加一个新的菜单项

我在Windows XP计算机上使用Excel 2007。 在我的工作表上,我有很多'形状'(矩形)。

我已经将macros分配给形状,以便他们执行一个任务,当有人点击它们。

我想要做的是以下,但我读过的post说这是不可能的。

  • 当某人右键单击某个形状时,是否可以添加新的菜单项?

当有人右键单击单元格时,很容易做到这一点,但形状看起来不同。

我知道这个工作表有一个名为“Worksheet_BeforeRightClick”的事件,但是当我右击一个形状时,我无法得到这个工作。

下面是我的代码的开始,但是它对我的菜单没有任何影响。

提前谢谢了

With Application.CommandBars("Shapes") With .Controls.Add .Caption = "My New Menu Item" .BeginGroup = True .OnAction = "MyNewMacro" End With End With 

据我所知,你想添加一个macros,当运行时,会创build另一个形状(?)。 如果这是真的,你可以运行如下的东西:

 Sub AddShape () Sheets("YourSheetName").Shapes.AddShape(msoShapeRectangle, 35.25, 30.75, 121.5, 51.75).Select 'Add some additional info like name and style, or even attach another macro to it: Selection.ShapeRange.Name = "Test_Name" Selection.ShapeRange.ShapeStyle = msoShapeStylePreset36 Selection.OnAction = "Testmacro" End Sub Sub TestMacro MsgBox "Hello" EndSub