Вызвать макрос рекордер Excel из кода - PullRequest
4 голосов
/ 22 сентября 2010

Мне нужен способ программно запустить макрос-рекордер в Excel и указать имя нового макроса, который будет создан.

Это может быть из VSTO или VBA или с использованием сборок взаимодействия Office.

Есть идеи, как этого добиться?

1 Ответ

2 голосов
/ 23 сентября 2010

В 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.Единственный способ сделать это - написать подпрограмму, которая переименует макрос после факта.Определить, как называется новый макрос, будет немного сложно, и у вас все равно будет диалоговое окно для работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...