我需要一种在Excel中以编程方式启动宏录制器的方法,并提供将要创建的新宏的名称。
这可以来自VSTO或VBA,也可以使用Office互操作程序集。
有关如何实现这一目标的任何想法?
答案 0 :(得分:2)
在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之类的操作。我认为这样做的唯一方法是编写一个在事后重命名宏的子程序。确定新宏的名称有点复杂,你仍然会有一个对话框来处理。