从代码中调用Excel宏录制器

我需要一种在Excel中以编程方式启动宏录制器的方法,并为将要创建的新宏提供名称.

这可以来自VSTO或VBA,也可以使用Office互操作程序集.

有什么想法可以实现吗?

最佳答案 在VBA中:

Dim ctrlStart As CommandBarControl, ctrlStop As CommandBarControl
Set ctrlStart = Application.CommandBars.FindControl(ID:=184)
Set ctrlStop = Application.CommandBars.FindControl(ID:=2186)

ctrlStart.Execute

'name part would go here, but first you have to deal with a modal dialog

ctrlStop.Execute

看起来RecordMacro控件上的Execute方法打开一个模态对话框.无法向此提供参数,也无法执行SendKeys之类的操作.我认为这样做的唯一方法是编写一个在事后重命名宏的子程序.确定新宏的名称是多么复杂,你仍然会有一个对话框来处理.

点赞