从代码中调用Excel宏录制器

时间:2010-09-22 03:00:56

标签: excel vba vsto

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

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

有关如何实现这一目标的任何想法?

1 个答案:

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