我正在清理一个充满无用宏的旧工作簿。工作簿非常大,里面也有很多按钮,代码中没有注释。我确信有些宏在某个地方被按钮引用,有些宏已经过时了。
有没有办法可以验证工作簿中是否引用了宏,例如通过按钮或形状?我说的不是子程序之间的引用,我已经使用 ctrl+f 来查找子程序/函数之间的链接了。
我在网上找到的所有帮助都是关于找出特定按钮正在使用哪个宏。我的问题恰恰相反。
答案1
您可以轻松获得形状及其名称的列表-
Sub listem()
Dim s As Shape
For Each s In ActiveSheet.Shapes
Debug.Print s.Name & ", " & s.OnAction
Next
End Sub
然后,您可以列出所有函数并进行匹配,但我认为除非您使用调用者触发它,否则不可能要求代码告诉您它的 application.caller。