Практическое руководство. Запуск существующих макросов Word VBA из C # Ribbon Addin

Предпосылки: У меня есть обширный набор специализированных макросов VBA, используемых в Word для форматирования документов. В Word 2003 эти macros были активированы с настраиваемой панели инструментов. Недавно я перешел на Word 2007 и хотел бы иметь возможность запускать эти существующие macros VBA из новой ленты Word, созданной с помощью VS 2010. Я создал ленту; однако я не могу понять, как вызывать существующие macros с помощью новых кнопок ленты.

Вопрос: Как мне вызвать существующие macros VBA, которые хранятся в шаблоне .dotm, из надстройки C # Word?

Любая помощь будет принята с благодарностью.

Методика, описанная в статье 306683 MS KB, в частности, о функции RunMacro определенной там, должна позволить вам вызывать макрос VBA из кода C #: вы определяете функцию RunMacro

 private void RunMacro(object oApp, object[] oRunArgs) { oApp.GetType().InvokeMember("Run", System.Reflection.BindingFlags.Default | System.Reflection.BindingFlags.InvokeMethod, null, oApp, oRunArgs); } 

а затем вызовите свой макрос следующим образом:

 RunMacro(oApp, new object[] {"NameOfMyMacro"}) 

или же

 RunMacro(oApp, new object[] {"NameOfMyMacro", "some", 3, "parameters"}) 

oApp – это объект Word.Application , который, я уверен, доступен где-то в надстройке Word.