Schéma de la personnalisation du ruban Office 2007.

Cette page recense les éléments et attributs xml du schéma de la personnalisation du ruban Office 2007.

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Introduction

I-A. Rappels

La personnalisation de l'interface utilisateur se fait par l'intermédiaire d'un fichier xml obéissant à un schéma strict.
La personnalisation peut aussi nécessiter du code Visual Basic, pour répondre à des événements, ou pour fournir des valeurs de manière dynamique plutôt que de manière statique dans le fichier xml.
Cela se fait au moyen de callbacks qui sont des fonctions appelées par le système de gestion de l'interface utilisateur.

I-B. Quelques définitions

  • Le fichier xml de personnalisation du ruban est constitué d'éléments.
  • Les éléments sont placés dans le xml sous la forme de balises xml.
  • Les éléments possèdent des attributs permettant de modifier leurs caractéristiques.
  • Certains attributs peuvent être définis de manière dynamique au moyen de fonctions de rappel (callback).
    Ex: attribut visible / callback getVisible
  • Les éléments et leurs caractéristiques sont définis de manière très précise par le schéma xml du ruban
  • Le schéma définit des types de données, d'attributs et d'éléments.
    Les éléments sont obligatoirement définis dans un type duquel ils pourront hériter des attributs.
  • Le schéma xml du ruban définit aussi les relations élément parent <-> élément(s) enfant(s).
  • On appelle contrôles les éléments permettant à l'utilisateur d'interagir.
    Par exemple un bouton, une liste déroulante, une case à cocher, ...
 
Sélectionnez
<ElementRacine>
    <Element1 attributA="valeurA" attributB="valeurB">
    </Element1>
</ElementRacine>

II. Hiérarchie des éléments.

Les éléments sont organisés de manière stricte et hiérarchisée, par le schéma xml du ruban.
Chaque élément peut avoir selon le cas, zéro, un, ou plusieurs éléments enfants.
Les éléments enfants possibles sont définis dans le schéma. On ne peut pas insérer un élément enfant qui n'est pas autorisé par le schéma.

On constate que des éléments de même nom peuvent être d'un type différent. En général il y a un type de base (CT_xxxxRegular) duquel sont dérivés des variantes de ce type. Ces variations peuvent enrichir/modifier/retirer des attributs au type de base.
Le type CT_Menu par exemple, est dérivé du type CT_MenuRegular et se trouve enrichi des attributs size et getSize.

Cette section passe en revue les éléments de niveau principal.

  • L'élément racine customUI
  • L'élément commands qui permet de désactiver ou de détourner des contrôles intégrés.
  • L'élément officeMenu qui permet de personnaliser le menu du bouton Office 2007.
  • L'élément qat qui permet de personnaliser la barre d'outils à accès rapide.
  • L'élément tabs qui permet de personnaliser les onglets du ruban.
  • L'élément contextualTabs qui permet de personnaliser les onglets contextuels du ruban.

II-A. customUI (principaux éléments enfants).

customUI est l'élément racine de la personnalisation de l'interface utilisateur.

Voici les éléments enfants de niveau 1 et 2 de l'élément customUI:

Eléments Type Lien
customUI CT_CustomUI customUI
    commands CT_Commands commands
    ribbon CT_Ribbon  
        officeMenu CT_OfficeMenu officeMenu
        qat CT_Qat qat
        tabs CT_Tabs tabs
        contextualTabs CT_ContextualTabs contextualTabs

Squelette xml de la personnalisation du ruban:

 
Sélectionnez

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">

  <!-- COMMANDES INTEGREES  -->
  <commands>
      ...
  </commands>

  <!-- RUBAN -->
  <ribbon>
      <!-- MENU OFFICE -->
      <officeMenu>
          ...
      </officeMenu>
    
      <!-- BARRE D'OUTILS ACCES RAPIDE -->
      <qat>
        <documentControls>
            ...
        </documentControls>
      </qat>

      <!-- ONGLETS DU RUBAN -->
      <tabs>
          ...
      </tabs>

      <!-- ONGLETS CONTEXTUELS -->
      <contextualTabs>
          ...
      </contextualTabs>
  </ribbon>
</customUI>
Espace de nom
  • 2007: xmlns="http://schemas.microsoft.com/office/2006/01/customui"
  • 2010: xmlns="http://schemas.microsoft.com/office/2009/07/customui"

II-B. customUI > commands.

L'élément commands permet de désactiver ou d'intercepter des commandes intégrées.
La désactivation peut se faire avec l'attribut enabled ou avec la fonction de rappel getEnabled.
L'interception se fait à l'aide de la fonction de rappel onAction.

L'élément commands n'accepte que des éléments enfants command :

Eléments Type
customUI CT_CustomUI
    commands CT_Commands
        command CT_Command
Exemple
Sélectionnez

    <commands>
        <!-- exemple : désactiver les boutons "options Access" et "Quitter Access" -->
        <command idMso="ApplicationOptionsDialog" enabled="false" />
        <command idMso="FileExit" enabled="false" />
    </commands>

II-C. customUI > ribbon > officeMenu.

L'élément officeMenu permet de personnaliser le menu du bouton Office 2007.

Voici les éléments enfants de niveau 1 et 2 de l'élément officeMenu:

Eléments Type
customUI CT_CustomUI
    ribbon CT_Ribbon
        officeMenu CT_OfficeMenu
            button CT_ButtonRegular
            checkBox CT_CheckBox
            control CT_ControlCloneRegular
            dynamicMenu CT_DynamicMenuRegular
            gallery CT_GalleryRegular
                item CT_Item
                button CT_ButtonRegular
            menu CT_MenuWithTitle
                button CT_ButtonRegular
                checkBox CT_CheckBox
                control CT_ControlCloneRegular
                dynamicMenu CT_DynamicMenuRegular
                gallery CT_GalleryRegular
                menu CT_MenuWithTitle
                menuSeparator CT_MenuSeparator
                splitButton CT_SplitButtonWithTitle
                toggleButton CT_ToggleButtonRegular
            menuSeparator CT_MenuSeparator
            splitButton CT_SplitButtonWithTitle
                button CT_VisibleButton
                toggleButton CT_VisibleToggleButton
                menu CT_MenuWithTitle
            toggleButton CT_ToggleButtonRegular

II-D. customUI > ribbon > qat.

L'élément qat permet de personnaliser le contenu de la barre d'outils accès rapide.
Il ne peut être utilisé qu'avec l'attribut startFromScratch="true" dans l'élément ribbon.
La personnalisation se fait dans l'élément enfant documentControls et ne concerne que la base de données courante.
L'élément enfant sharedControls est réservé à un usage plus global et ne peut pas être employé dans un fichier xml de personnalisation du ruban.
On ne peut l'employer que dans un fichier xml de personnalisation de la barre d'outils accès rapide, c'est à dire un fichier qui ne permet de personnaliser que la barre d'outils accès rapide.
On le retrouve par exemple dans le fichier Access.qat (C:\Users\NomUtilisateur\AppData\Local\Microsoft\Office)

Voici les éléments enfants de niveau 1 et 2 de l'élément qat:

Eléments Type
customUI CT_CustomUI
    ribbon CT_Ribbon
        qat CT_Qat
            documentControls CT_QatItems
                control CT_ControlCloneQat
                button CT_ButtonRegular
                separator CT_Separator
            sharedControls CT_QatItems
                control CT_ControlCloneQat
                button CT_ButtonRegular
                separator CT_Separator

II-E. customUI > ribbon > tabs.

L'élément tabs est celui que l'on sera amené à personnaliser le plus souvent. Il s'agit des onglets du ruban.
On peut bien évidemment créer des onglets, mais aussi modifier (enrichir/appauvrir) les onglets intégrés d'Access.

Voici les éléments enfants de niveau 1 à 4 de l'élément tabs:

Eléments Type
customUI CT_CustomUI
    ribbon CT_Ribbon
        tabs CT_Tabs
            tab CT_Tab
                group CT_Group
                    box CT_Box
                        box CT_Box
                        button CT_Button
                        buttonGroup CT_ButtonGroup
                        checkBox CT_CheckBox
                        comboBox CT_ComboBox
                        control CT_ControlClone
                        dropDown CT_DropDownRegular
                        dynamicMenu CT_DynamicMenu
                        editBox CT_EditBox
                        gallery CT_Gallery
                        labelControl CT_LabelControl
                        menu CT_Menu
                        splitButton CT_SplitButton
                        toggleButton CT_ToggleButton
                    button CT_Button
                    buttonGroup CT_ButtonGroup
                        button CT_ButtonRegular
                        control CT_ControlCloneRegular
                        dynamicMenu CT_DynamicMenuRegular
                        gallery CT_GalleryRegular
                        menu CT_MenuRegular
                        splitButton CT_SplitButtonRegular
                        toggleButton CT_ToggleButtonRegular
                    checkBox CT_CheckBox
                    comboBox CT_ComboBox
                        item CT_Item
                    control CT_ControlClone
                    dropDown CT_DropDownRegular
                        item CT_Item
                        button CT_ButtonRegular
                    dynamicMenu CT_DynamicMenu
                    editBox CT_EditBox
                    gallery CT_Gallery
                        item CT_Item
                        button CT_ButtonRegular
                    labelControl CT_LabelControl
                    menu CT_Menu
                        button CT_ButtonRegular
                        checkBox CT_CheckBox
                        control CT_ControlCloneRegular
                        dynamicMenu CT_DynamicMenuRegular
                        gallery CT_GalleryRegular
                        menu CT_MenuRegular
                        menuSeparator CT_MenuSeparator
                        splitButton CT_SplitButtonRegular
                        toggleButton CT_ToggleButtonRegular
                    separator CT_Separator
                    splitButton CT_SplitButton
                        button CT_VisibleButton
                        toggleButton CT_VisibleToggleButton
                        menu CT_MenuRegular
                    toggleButton CT_ToggleButton
                    dialogBoxLauncher CT_DialogLauncher
                        button CT_ButtonRegular

II-F. customUI > ribbon > contextualTabs.

L'élément contextualTabs concerne les onglets contextuels. Ce sont les onglets qui apparaissent lorsqu'on est par exemple, en mode création sur un objet.
On ne peut pas créer d'onglets contextuels, mais on peut modifier les onglets existants.

Voici les éléments enfants de niveau 1 à 3 de l'élément contextualTabs:

Eléments Type
customUI CT_CustomUI
    ribbon CT_Ribbon
        contextualTabs CT_ContextualTabs
            tabSet CT_TabSet
                tab CT_Tab
                    group CT_Group

III. Eléments conteneurs.

Les éléments conteneurs ne sont pas des éléments avec lesquels l'utilisateur peut interagir.
Ils sont définis dans le haut de la hiérarchie du schéma xml, pour contenir des éléments enfants.

Quelques explications sur les commentaires qui apparaitront par la suite.

  • «Entre 0 et 1000» : Min=0 / Max = 1000.
  • «Entre 1 et 1000» : Min=1 / Max = 1000 => obligatoire à cause de Min=1.
  • «Respecter l'ordre» : L'ordre de placement des éléments doit être respecté.
    Par exemple, si la liste est "toto, tutu, titi"
    toto devra toujours être devant tutu si tutu est présent.
    toto devra toujours être devant titi si titi est présent.
    tutu devra toujours être devant titi si titi est présent.
    Les enchaînements valides seront ...
    pour 3 éléments: "toto, tutu, titi"
    pour 2 éléments: "toto, tutu", "toto, titi", "tutu, titi"
    pour 1 élément la question de l'ordre ne se pose pas.
 

III-A. customUI (type CT_CustomUI)

Enfants
commandsCT_Commands, ribbonCT_Ribbon
Respecter l'ordre. Au maximum un enfant de même nom.
 

III-B. commands (type CT_Commands)

Enfants
commandCT_Command
Entre 1 et 500 éléments enfants.
 

III-B-1. command (type CT_Command)

III-C. ribbon (type CT_Ribbon)

Enfants
officeMenuCT_OfficeMenu, qatCT_Qat, tabsCT_Tabs, contextualTabsCT_ContextualTabs
Respecter l'ordre. Au maximum un enfant de même nom.
 

III-D. officeMenu (type CT_OfficeMenu)

III-E. qat (type CT_Qat)

Enfants
sharedControlsCT_QatItems, documentControlsCT_QatItems
Respecter l'ordre. Au maximum un enfant de même nom.
 

III-F. sharedControls et documentControls (type CT_QatItems)

Enfants
buttonCT_ButtonRegular, controlCT_ControlCloneQat, separatorCT_Separator
Entre 0 et 1000 contrôles enfants
 

III-G. tabs (type CT_Tabs)

Enfants
tabCT_Tab
Entre 1 et 100 contrôles enfants
 

III-H. tab (type CT_Tab)

III-I. group (type CT_Group)

III-J. contextualTabs (type CT_ContextualTabs)

Enfants
tabSetCT_TabSet
Entre 1 et 100 contrôles enfants
 

III-K. tabSet (type CT_TabSet)

Enfants
tabCT_Tab
Entre 0 et 50 contrôles enfants

IV. Eléments de type contrôle

A quelques exceptions près, les éléments de type contrôle sont des éléments avec lesquels l'utilisateur pourra interagir (bouton, case à cocher, liste déroulante, ...).

 

IV-A. box (CT_Box)

IV-B-1. button (CT_ButtonRegular)

IV-B-2. button (CT_Button)

IV-B-3. button (CT_VisibleButton)

IV-C. buttonGroup (CT_ButtonGroup)

IV-D. checkBox (CT_CheckBox)

IV-E. comboBox (CT_ComboBox)

IV-F-1. control (CT_ControlCloneRegular)

IV-F-2. control (CT_ControlClone)

IV-F-3. control (CT_ControlCloneQat)

IV-G. dialogBoxLauncher (CT_DialogLauncher)

Cet élément sert à créer le bouton en bas à droite d'un groupe d'un onglet.
Exemple : dialogBoxLauncher
Enfants
buttonCT_ButtonRegular
Bouton obligatoire. Maximum: 1 bouton.
 

IV-H. dropDown (CT_DropDownRegular)

IV-I-1. dynamicMenu (CT_DynamicMenuRegular)

IV-I-2. dynamicMenu (CT_DynamicMenu)

IV-J. editBox (CT_EditBox)

IV-K-1. gallery (CT_GalleryRegular)

C'est le type de galerie par défaut. Pas d'attribut size.
Enfants
itemCT_Item (0 à 1000), buttonCT_ButtonRegular (0 à 16)
Respecter l'ordre.
 

IV-K-2. gallery (CT_Gallery)

Contexte: Enfant direct d'un élément box ou group.
Attribut gagné: size
Enfants
itemCT_Item (0 à 1000), buttonCT_ButtonRegular (0 à 16)
Respecter l'ordre.
 

IV-L. item (CT_Item)

IV-M. labelControl (CT_LabelControl)

IV-N-1. menu (CT_MenuRegular)

IV-N-2. menu (CT_Menu)

IV-N-3. menu (CT_MenuWithTitle)

IV-O. menuSeparator (CT_MenuSeparator)

IV-P. separator (CT_Separator)

IV-Q-1. splitButton (CT_SplitButtonRegular)

IV-Q-2. splitButton (CT_SplitButton)

IV-Q-3. splitButton (CT_SplitButtonWithTitle)

IV-R-1. toggleButton (CT_ToggleButtonRegular)

IV-R-2. toggleButton (CT_ToggleButton)

IV-S. toggleButton (CT_VisibleToggleButton)

V. Attributs

 
Attribut Valeur
boxStyle "horizontal" ou "vertical". Définit le style d'alignement des contrôles à l'intérieur de la boîte.
boxStyle
boxStyle
 
Attribut Valeur
columns "1" à "1024". Définit le nombre de colonnes du contrôle déroulant Gallery.
 
Attribut Valeur
description Chaîne de 1 à 4096 caractères. Description étendue du contrôle. Apparaît dans les menus dont la taille des items est définie à large.
 
Attribut Valeur
enabled "true" ou "false". Définit si un contrôle est activé ou non.
 
Attribut Valeur
id Chaîne de 1 à 1024 caractères. Identifiant (unique) d'un contrôle utilisateur.
 
Attribut Valeur
idMso Chaîne de 1 à 1024 caractères. Identifiant d'un contrôle intégré.
 
Attribut Valeur
idQ Chaîne de 1 à 1024 caractères. Identifiant d'un contrôle avec qualificatif.
 
Attribut Valeur
image Chaîne de 1 à 1024 caractères. Identifiant d'une image qui sera fourni en argument à la fonction de rappel loadImage.
 
Attribut Valeur
imageMso Chaîne de 1 à 1024 caractères. Identifiant d'un contrôle intégré dont l'image sera affichée.
 
Attribut Valeur
insertAfterMso Chaîne de 1 à 1024 caractères. Identifiant d'un contrôle intégré, après lequel doit avoir lieu l'ajout.
 
Attribut Valeur
insertAfterQ Chaîne de 1 à 1024 caractères. Identifiant avec qualificatif d'un contrôle, après lequel doit avoir lieu l'ajout.
 
Attribut Valeur
insertBeforeMso Chaîne de 1 à 1024 caractères. Identifiant d'un contrôle intégré, avant lequel doit avoir lieu l'ajout.
 
Attribut Valeur
insertBeforeQ Chaîne de 1 à 1024 caractères. Identifiant avec qualificatif d'un contrôle, avant lequel doit avoir lieu l'ajout.
 
Attribut Valeur
invalidateContentOnDrop "true" ou "false". Définit s'il faut utiliser les fonctions de rappel, chaque fois que le contrôle à contenu dynamique est déroulé.
 
Attribut Valeur
itemHeight "1" à "4096". Définit la hauteur d'un élément en pixels.
 
Attribut Valeur
itemSize "normal" ou "large". Définit la taille des Items dans un menu.
 
Attribut Valeur
itemWidth "1" à "4096". Définit la largeur d'un élément en pixels.
 
Attribut Valeur
keytip Chaîne de 1 à 3 caractères. Définit le raccourci clavier d'un contrôle.
 
Attribut Valeur
label Chaîne de 1 à 1024 caractères. Définit l'étiquette du contrôle.
 
Attribut Valeur
maxLength "1" à "1024". Nombre maximum de caractères.
 
Attribut Valeur
rows "1" à "1024". Définit le nombre de lignes du contrôle déroulant Gallery.
 
Attribut Valeur
screentip Chaîne de 1 à 1024 caractères. Définit le texte de l'info-bulle du contrôle.
screentip supertip
screentip et supertip
 
Attribut Valeur
showImage "true" ou "false". Définit si l'image du contrôle doit être visible ou non.
 
Attribut Valeur
showInRibbon "false" ou "0". Définit si le contrôle est "in-ribbon". Non supporté dans le ruban d'un document.
 
Attribut Valeur
showItemImage "true" ou "false". Définit si l'image des éléments d'un contrôle déroulant son visibles ou non.
 
Attribut Valeur
showItemLabel "true" ou "false". Définit si l'étiquette des éléments d'un contrôle déroulant son visibles ou non.
 
Attribut Valeur
showLabel "true" ou "false". Définit si l'étiquette du contrôle doit être visible.
 
Attribut Valeur
size "normal" ou "large". Définit la taille d'un contrôle.
 
Attribut Valeur
sizeString Chaîne de 1 à 1024 caractères. Elle représente ce que le contrôle aura de plus grand à afficher.
 
Attribut Valeur
startFromScratch "true" ou "false".
 
Attribut Valeur
supertip Chaîne de 1 à 1024 caractères. Définit le texte long de l'info-bulle du contrôle.
voir capture écran de l'attribut screentip
 
Attribut Valeur
tag Chaîne de 1 à 1024 caractères. Donnée utilisateur.
 
Attribut Valeur
title Chaîne de 1 à 1024 caractères. Titre à afficher lorsqu'un menu est ouvert.
 
Attribut Valeur
visible "true" ou "false". Définit si un contrôle est visible ou non.

VI. Callbacks (fonctions de rappel)

 
getContent
 
Sélectionnez
Sub GetContent(control As IRibbonControl, ByRef content)
 
getDescription
 
Sélectionnez
Sub GetDescription(control As IRibbonControl, ByRef description)
 
getEnabled
 
Sélectionnez
Sub GetEnabled(control As IRibbonControl, ByRef enabled)
 
getImage
 
Sélectionnez
Sub GetImage(control As IRibbonControl, ByRef image)
On peut affecter à l'argument image l'idMso d'un contrôle intégré ou un objet image.
 
Sélectionnez
' idMso
image = "FindDialog"

' Ressource image
Set image = Application.CommandBars.GetImageMso("FindDialog", 32, 32)
Set image = stdole.LoadPicture("E:\Mes Documents\Mes images\BoutonsEtIcones\bCheck.bmp")
 
getItemCount
 
Sélectionnez
Sub GetItemCount(control As IRibbonControl, ByRef count)
 
getItemHeight
 
Sélectionnez
Sub getItemHeight(control As IRibbonControl, ByRef height)
 
getItemID
 
Sélectionnez
Sub GetItemID(control As IRibbonControl, index As Integer, ByRef id)
 
getItemImage
 
Sélectionnez
Sub GetItemImage(control As IRibbonControl, index As Integer, ByRef image)
 
getItemLabel
 
Sélectionnez
Sub GetItemLabel(control As IRibbonControl, index As Integer, ByRef label)
 
getItemScreenTip
 
Sélectionnez
Sub GetItemScreenTip(control As IRibbonControl, index As Integer, ByRef screentip)
 
getItemSuperTip
 
Sélectionnez
Sub GetItemSuperTip (control As IRibbonControl, index As Integer, ByRef supertip)
 
getItemWidth
 
Sélectionnez
Sub getItemWidth(control As IRibbonControl, ByRef width)
 
getKeytip
 
Sélectionnez
Sub GetKeytip (control As IRibbonControl, ByRef label)
 
getLabel
 
Sélectionnez
Sub GetLabel(control As IRibbonControl, ByRef label)
 
getPressed
 
Sélectionnez
Sub GetPressed(control As IRibbonControl, ByRef returnValue)
 
getScreentip
 
Sélectionnez
Sub GetScreentip(control As IRibbonControl, ByRef screentip)
 
getSelectedItemID
 
Sélectionnez
Sub GetSelectedItemID(control As IRibbonControl, ByRef index)
 
getSelectedItemIndex
 
Sélectionnez
Sub GetSelectedItemIndex(control As IRibbonControl, ByRef index)
 
getShowImage
 
Sélectionnez
Sub GetShowImage (control As IRibbonControl, ByRef showImage)
 
getShowLabel
 
Sélectionnez
Sub GetShowLabel (control As IRibbonControl, ByRef showLabel)
 
getSize
 
Sélectionnez
Sub GetSize(control As IRibbonControl, ByRef size)
 
getSupertip
 
Sélectionnez
Sub GetSupertip(control As IRibbonControl, ByRef screentip)
 
getText
 
Sélectionnez
Sub GetText(control As IRibbonControl, ByRef text)
 
getTitle
 
Sélectionnez
Sub GetTitle (control As IRibbonControl, ByRef title)
 
getVisible
 
Sélectionnez
Sub GetVisible(control As IRibbonControl, ByRef visible)
 
loadImage
 
Sélectionnez
Sub LoadImage(imageId As string, ByRef image)
 
onAction
Pour l'élément button:
 
Sélectionnez
Sub OnAction(control As IRibbonControl)
Pour les éléments checkBox et toggleButton:
 
Sélectionnez
Sub OnAction(control As IRibbonControl, pressed As Boolean)
Pour les éléments dropDown et gallery:
 
Sélectionnez
Sub OnAction(control As IRibbonControl, selectedId As String, selectedIndex As Integer)
Pour un élément command faisant référence à un contrôle intégré de type button:
 
Sélectionnez
Sub OnAction(control As IRibbonControl, byRef CancelDefault)
Pour un élément command faisant référence à un contrôle intégré de type toggleButton:
 
Sélectionnez
Sub OnAction(control As IRibbonControl, pressed As Boolean, byRef cancelDefault)
 
onChange
 
Sélectionnez
Sub OnChange(control As IRibbonControl, text As String)
 
onLoad
 
Sélectionnez
Sub OnLoad(ribbon As IRibbonUI)

Fin

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2013 Christophe Le Fustec. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.