1

据我所知,在 Excel 中,我们可以将宏分配给几种对象:shape, Form Control, ActiveX Control...

给定一个 Excel 文件,我想编写一个 VBA 代码来执行以下操作:

  1. 遍历所有有资格分配给宏的现有对象
  2. 对于找到的每个对象,如果分配了宏,则打印其名称和宏的名称(或者理想情况下也是主体)。

我希望这是详尽无遗的,有人可以帮忙吗?

4

1 回答 1

1

为位于ActiveSheet以下代码中的形状扩展@mehow 答案将导致形状名称和宏名称(如果有关联)。

Sub getShapeMacro()

    'to secure for unexpected...
    On Error Resume Next

    Dim SHP As Shape
    For Each SHP In ActiveSheet.Shapes
        Debug.Print SHP.Name, SHP.OnAction
    Next

End Sub
于 2013-10-09T13:33:22.950 回答