Excel VBA:右键单击形状并添加新菜单项

时间:2013-12-12 09:56:37

标签: excel vba excel-vba excel-2007 right-click

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

我已将宏指定给形状,以便在有人点击它们时执行任务。

我想做的是以下内容,但我读过的帖子说这是不可能的。

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

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

我知道工作表有一个名为'Worksheet_BeforeRightClick'的事件,但是当我右键单击一个形状时,我无法使用它。

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

非常感谢提前

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

1 个答案:

答案 0 :(得分:0)

据我了解,您想添加一个宏,在运行时会创建另一个形状(?)。如果这是真的,你可以运行类似的东西:

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