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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top