Personnaliser le ruban dans MS Word 2010 avec l'automatisation en C #
-
11-10-2019 - |
Question
Je suis en train d'automatiser MS Word de mon C # app et un problème de changer l'interface utilisateur du ruban. Tous les échantillons que je pouvais trouver utilisent l'interface IRibbonExtensibility qui est disponible à partir Addins seulement. Est-il possible de le faire en utilisant l'automatisation?
La solution 2
Ce que je l'ai fait était de construire petit ATL Addin qui met en œuvre 2 Interfaces: IDTExtensibility2 et IRibbonExtensibility Le XML de personnalisation est simplement chargé à partir du fichier.
A l'intérieur du code C # le codage est très simple:
RegistryKey key = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Office\Word\Addins\RibbonLoaderLib.RibbonLoader");
key.SetValue("LoadBehavior",2,RegistryValueKind.DWord);
key.SetValue("Description","Ribbon Loader Add-In",RegistryValueKind.String);
key.SetValue("FriendlyName","Ribbon Loader Add-In",RegistryValueKind.String);
wordApp_.COMAddIns.Item("RibbonLoaderLib.RibbonLoader").Connect = true;
Autres conseils
en utilisant l'interface IRibbonExtensibility qui est disponible à partir Addins seulement
Ce qui signifie qu'il ne fonctionnera pas par l'automatisation, l'interface est pas exposée dans la bibliothèque de type hors processus. Vous devrez utiliser VSTO pour écrire un add-in, utilisez Office Word C # + + 2007 Add-in modèle de projet pour commencer.