Comment: exécuter des macros VBA Word existantes à partir du complément du ruban C #

Arrière-plan: J’ai un vaste ensemble de macros VBA spécialisées utilisées dans Word pour la mise en forme de documents. Dans Word 2003, ces macros ont été activées à partir d’une barre d’outils personnalisée. Je suis récemment passé à Word 2007 et j’aimerais pouvoir exécuter ces macros VBA existantes à partir d’un nouveau ruban Word créé avec VS 2010. J’ai créé un ruban; Cependant, je ne sais pas comment appeler les macros existantes à partir des nouveaux boutons du ruban.

Question: Comment appeler les macros VBA existantes, stockées dans un modèle .dotm, à partir du complément Word C #?

Toute aide serait grandement appréciée.

La technique décrite dans l’ article 306683 de la base de connaissances , en particulier la fonction RunMacro définie ici, devrait vous permettre d’appeler une macro VBA à partir de code C #: vous définissez une fonction RunMacro

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

puis appelez votre macro comme ceci:

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

ou

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

oApp est l’object Word.Application , qui, j’en suis sûr, est disponible quelque part dans un complément Word.