Мне нужен способ программно запустить макрорекордер в Excel и указать имя нового макроса, который будет создан.Вызов макрокоманда Excel из кода
Это может быть VSTO или VBA, или с помощью сборщиков Interop Office.
Любые идеи, как это можно сделать?
Мне нужен способ программно запустить макрорекордер в Excel и указать имя нового макроса, который будет создан.Вызов макрокоманда Excel из кода
Это может быть VSTO или VBA, или с помощью сборщиков Interop 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
Он выглядит как метод Execute по контролю RecordMacro открывает модальное диалоговое окно. Невозможно передать этот параметр или сделать что-то вроде SendKeys. Единственный способ, которым я это вижу, - написать подраздел, который переименует макрос после факта. Будет немного сложно определить, что такое имя нового макроса, и у вас все еще будет диалоговое окно для рассмотрения.
Ну, у меня есть чертовски время, чтобы получить мой ответ на самом деле, что я пытался сделать, когда я понял часть имени. Возможно, они не позволяют запускать макрорекордер, как и другие пункты меню. Я буду продолжать рыть. –
Сегодня у меня не хватило времени, я могу получить доступ к объекту, но команда Execute завершается с ошибкой. Я буду работать над этим на следующей неделе. –
ОК, сделано, что я мог бы сделать. –