Modifier le ruban de Word 2007 avec Open XML (1/2)
Open XML est un format de document bureautique flexible : structure basée sur l’Open Packaging Convention, intégration de données métiers, etc ; la nouvelle interface de Office 2007 l’est tout autant avec son nouveau mécanisme de ruban. Dans cet article nous allons ajouter un composant personnalisé au ruban Office, mais contrairement à VSTO, celui-ci ne sera pas fourni par l’application mais par le document au format Open XML.
La possibilité d’étendre le ruban de la suite Office s’appelle RibbonX (Ribbon Extensibility). RibbonX permet de définir et de composer une interface pour le ruban à partir d’une description au format XML, ce qui simplifie de beaucoup la création de composant personnalisé.
Dans la suite de l’article nous allons procéder, de la manière la plus simple et la plus rapide, à la réalisation d’un composant pour Word 2007. Ce composant sera constitué d’un bouton et d’une méthode permettant de gérer l’évènement du clic en ajoutant la toujours très célèbre expression « Hello world ! » dans le document en cours.
Création de l’interface avec RibbonX
La première étape pour pouvoir intégrer une interface est bien évidemment de la créer, et c’est ce que vous allez faire en créant un répertoire nommé guiPerso et un fichier XML portant un nom quelconque, par exemple guiPerso.xml pour le reste de l’article. Nous allons utiliser le contenu du listing 1 pour définir l’interface :
Listing 1
La signification de l’élément customUI est aisée à comprendre tout comme celui de ribbon. Concernant la définition de l’interface nous pouvons remarquer l’élément tabs qui contient l’ensemble des onglets défini, avec à l’intérieur avec un élément tab pour chaque onglet. A l’intérieur d’un onglet nous allons trouver un groupe – élément group - qui regroupe plusieurs contrôles dont notre bouton, défini par l’élément button dont on spécifie le libellé et l’action qui sera exécutée lors d’un clic.
Nous en avons terminé avec l’interface en elle-même, penchons nous maintenant sur le comportement du bouton.
Définir le comportement du bouton
Ouvrez Office Word 2007 et enregistrez le document vierge avec l’extension .docm, extension qui autorise le document à intégrer et potentiellement à exécuter la ou les macros qu’il contient. Maintenant que nous avons un document autorisant les macros, nous allons en créer une qui contiendra la fonction DireBonjourEnAnglais qui sera exécutée par notre bouton.
Ouvrez l’éditeur Visual Basic situé dans l’onglet Développeur, et activez si nécessaire (en fonction de vos options de sécurité) les macros dans votre document, puis saisissez le listing 2 dans ThisDocument :