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.