Partager via


Personnaliser le ruban Office Fluent à l’aide d’un complément COM géré

Le composant de ruban de l’interface utilisateur Microsoft Office Fluent dans les suites Microsoft Office offre aux utilisateurs un moyen flexible d’utiliser des applications Office. La fonctionnalité d’extension du ruban (RibbonX) repose sur du code XML déclaratif basé sur du texte qui simplifie la création et la personnalisation de l’interface utilisateur du ruban.

L’exemple de code de cette rubrique montre comment personnaliser le ruban dans une application Office, quel que soit le document ouvert. Dans les étapes suivantes, vous créez des personnalisations au niveau de l’application à l’aide d’un complément COM managé et vous créez le complément dans Microsoft Visual Studio 2012 à l’aide de Microsoft Visual C#. Dans le cadre de ce projet, seront ajoutés à l’interface utilisateur du ruban un onglet personnalisé, un groupe personnalisé, ainsi qu’un bouton personnalisé. Procédez comme suit :

  1. Créez le fichier de personnalisation XML.

  2. Créez un projet de complément COM managé dans Microsoft Visual Studio 2012 avec C#.

  3. Ajoutez le fichier de personnalisation XML au projet en tant que ressource incorporée.

  4. Implémentez l’interface IRibbonExtensibility.

  5. Créez une méthode de rappel qui est déclenchée lorsque le bouton est choisi.

  6. Générez, installez et testez le projet.

Créer le fichier de personnalisation XML

Cette étape consiste à créer le fichier chargé d’ajouter des composants personnalisés à l’interface utilisateur du ruban.

  1. Dans un éditeur de texte, ajoutez le code XML suivant :

     <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
       <ribbon> 
         <tabs> 
           <tab id="CustomTab" label="My Tab"> 
             <group id="SampleGroup" label="Sample Group"> 
               <button id="Button" label="Insert Company Name" size="large" onAction="InsertCompanyName" /> 
             </group > 
           </tab> 
         </tabs> 
       </ribbon> 
     </customUI> 
    
  2. Fermez le fichier et enregistrez-le sous le nom customUI.xml.

Créer un projet de complément COM managé

Dans cette étape, vous allez créer un projet C# de complément COM dans Microsoft Visual Studio 2012.

  1. Démarrez Microsoft Visual Studio 2012.

  2. Dans le menu Fichier , choisissez Nouveau projet.

  3. Dans la boîte de dialogue Nouveau projet sous Types de projets, développez Autres projets, choisissez Projets d’extensibilité, puis double-cliquez sur Complément partagé.

  4. Attribuez un nom au projet. Pour cet exemple, tapez RibbonXSampleCS.

  5. Dans le premier écran de l’Assistant Complément partagé, choisissez Suivant.

  6. Sélectionnez Créer un complément à l’aide de Visual C#, puis choisissez Suivant.

  7. Effacez toutes les sélections à l’exception de Microsoft Word, puis choisissez Suivant.

  8. Tapez un nom et une description pour le complément, puis choisissez Suivant.

  9. Dans l’écran Choisir les options de complément, sélectionnez J’aimerais que mon complément se charge lors du chargement de l’application hôte , puis choisissez Suivant.

  10. Choisissez Terminer pour terminer l’Assistant.

Ajouter des références externes au projet

Cette étape consiste à ajouter des références aux assemblys PIA Word et à la bibliothèque de types.

  1. Dans le Explorateur de solutions, cliquez avec le bouton droit sur Références, puis choisissez Ajouter une référence.

    Remarque

    Si vous ne voyez pas le dossier Références , choisissez le menu Projet , puis Afficher tous les fichiers.

  2. Sous l’onglet .NET, faites défiler l’écran vers le bas, enfoncez la touche Ctrl, puis sélectionnez Microsoft.Office.Interop.Word.

  3. Sous l’onglet COM , faites défiler vers le bas, sélectionnez la bibliothèque d’objets Microsoft Office 15.0 (ou la bibliothèque appropriée pour votre version d’Office), puis choisissez OK.

  4. Ajoutez les références d’espace de noms suivantes au projet, si elles n’existent pas déjà, juste en dessous de la ligne d’espace de noms .

     using System.Reflection; 
     using Microsoft.Office.Core; 
     using System.IO; 
     using System.Xml; 
     using Extensibility; 
     using System.Runtime.InteropServices; 
     using MSword = Microsoft.Office.Interop.Word; 
    

Ajouter le fichier de personnalisation XML en tant que ressource incorporée

Dans cette étape, vous ajoutez le fichier de personnalisation XML en tant que ressource incorporée dans le projet.

  1. Dans le Explorateur de solutions, cliquez avec le bouton droit sur RibbonXSampleCS, pointez sur Ajouter, puis choisissez Élément existant.

  2. Accédez au fichier customUI.xml que vous avez créé, sélectionnez-le, puis choisissez Ajouter.

  3. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur customUI.xml, puis sélectionnez Propriétés.

  4. Dans le Fenêtre Propriétés, sélectionnez Action de génération, puis faites défiler jusqu’à Ressource incorporée.

Implémenter l’interface IRibbonExtensibility

Dans cette étape, vous ajoutez du code à Extensibility.IDTExtensibility2 ::OnConnection pour créer une référence à l’application Word au moment de l’exécution. Vous implémentez également le seul membre de l’interface IRibbonExtensibility , GetCustomUI.

  1. Dans le Explorateur de solutions, cliquez avec le bouton droit sur Connect.cs, puis choisissez Afficher le code.

  2. En dessous de la méthode Connect, ajoutez la déclaration suivante pour créer une référence à l’objet Application de Word :

    private MSword.Application applicationObject;

  3. Ajoutez la ligne suivante à la méthode OnConnection. Cette instruction a pour effet de créer une instance de l’objet Application de Word :

    applicationObject =(MSword.Application)application;

  4. À la fin de l’instruction Connect de la classe publique, ajoutez une virgule, puis tapez IRibbonExtensibility.

    Remarque

    Utilisez Microsoft IntelliSense pour insérer des méthodes d’interface pour vous. Par exemple, à la fin de l’instruction Connect de la classe publique, tapez IRibbonExtensibility, cliquez avec le bouton droit et pointez sur Implémenter l’interface, puis choisissez Implémenter l’interface explicitement. Un stub est alors ajouté pour la méthode GetCustomUI. L’implémentation se présente ainsi :

       string IRibbonExtensibility.GetCustomUI(string RibbonID) 
     { 
     }
    
  5. Insérez l’instruction suivante dans la méthode GetCustomUI , en remplaçant le code existant : return GetResource("customUI.xml");

  6. Insérez la méthode suivante sous la méthode GetCustomUI :

     private string GetResource(string resourceName) 
           { 
               Assembly asm = Assembly.GetExecutingAssembly(); 
               foreach (string name in asm.GetManifestResourceNames()) 
               { 
                   if (name.EndsWith(resourceName)) 
                   { 
                       System.IO.TextReader tr = new System.IO.StreamReader(asm.GetManifestResourceStream(name)); 
                       //Debug.Assert(tr != null); 
                       string resource = tr.ReadToEnd(); 
    
                       tr.Close(); 
                       return resource; 
                   } 
               } 
               return null; 
           } 
    
    

    La méthode GetCustomUI appelle la méthode GetResource. La méthode GetResource définit une référence à cet assembly pendant l’exécution, puis effectue une boucle dans la ressource incorporée jusqu’à ce qu’elle trouve celle nommée customUI.xml. Elle crée ensuite une instance de l’objet StreamReader, qui lit le fichier incorporé contenant le code XML. La procédure transmet en retour le code XML à la méthode GetCustomUI, qui retourne le code XML à l’interface utilisateur du ruban. Il existe une autre solution qui consiste à construire une chaîne contenant le code XML et à la lire directement dans la méthode GetCustomUI

  7. Ajoutez cette méthode à la suite de la méthode GetResource. Cette méthode insère le nom de la société dans le document au début de la page.

     public void InsertCompanyName(IRibbonControl control) 
           { 
           // Inserts the specified text at the beginning of a range or selection. 
               string MyText; 
               MyText = "Microsoft Corporation"; 
    
               MSword.Document doc = applicationObject.ActiveDocument; 
    
               //Inserts text at the beginning of the active document. 
               object startPosition = 0; 
               object endPosition = 0; 
               MSword.Range r = (MSword.Range)doc.Range( 
                     ref startPosition, ref endPosition); 
               r.InsertAfter(MyText); 
           } 
    
    

Générer et installer le projet

Dans cette étape, vous allez générer le complément et son projet d’installation. Avant de poursuivre, veillez à fermer Word.

  1. Dans le menu Projet , choisissez Générer la solution. Une fois la génération terminée, une notification s’affiche dans le coin inférieur gauche de la fenêtre.

  2. Dans le Explorateur de solutions, cliquez avec le bouton droit sur RibbonXSampleCSSetup, puis choisissez Générer.

  3. Cliquez avec le bouton droit sur RibbonXSampleCSSetup et choisissez Installer pour commencer l’Assistant Installation de RibbonXSampleCSSetup.

  4. Choisissez Suivant dans chacun des écrans, puis fermer sur l’écran final.

  5. Démarrez Word. L'onglet My Tab (Mon onglet) se trouve normalement à droite des autres onglets.

Tester le projet

Choisissez l’onglet Mon onglet , puis insérer le nom de la société pour insérer le nom de la société dans le document au niveau du curseur. Si vous ne voyez pas le ruban personnalisé, vous devrez peut-être ajouter une entrée au Registre Windows en effectuant les étapes suivantes.

Attention

La procédure suivante contient des informations visant à modifier le Registre. Avant d’effectuer cette opération, veillez à le sauvegarder et assurez-vous d’être en mesure de le restaurer en cas de problème. Pour plus d’informations sur la sauvegarde, la restauration et la modification du Registre, consultez cet article de la Base de connaissances Microsoft : Informations sur le Registre Windows pour les utilisateurs avancés (256986).

  1. Dans le Explorateur de solutions, cliquez avec le bouton droit sur le projet d’installation, RibbonXSampleCSSetup, pointez sur Affichage, puis choisissez Registre.

  2. Sous l’onglet Registre, accédez à la clé de Registre suivante pour le complément : HKCU\Software\Microsoft\Office\Word\AddIns\RibbonXSampleCS.Connect

    Remarque

    Si la clé RibbonXSampleCS.Connect n’existe pas, vous pouvez la créer. Pour ce faire, cliquez avec le bouton droit sur le dossier Addins , pointez sur Nouveau, puis choisissez Clé. Nommez la clé RibbonXSampleCS.Connect. Ajoutez un DWord LoadBehavior et définissez sa valeur sur 3.

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.