我需要一种在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之类的操作.我认为这样做的唯一方法是编写一个在事后重命名宏的子程序.确定新宏的名称是多么复杂,你仍然会有一个对话框来处理.