Office 2010 : les nouveautés du Ruban

Thierry GASPERMENT

Découvrez les nouveautés du ruban Office 2010.

Commentez

- Titre : Office 2010 : les nouveautés du Ruban

- Auteur : Thierry GASPERMENT

- Parution : 9 mars 2010

- Mise à jour : 9 mars 2010

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2009 Thierry GASPERMENT. 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. Droits de diffusion permanents accordés à Developpez LLC.

Sommaire

- I. Introduction

- II. L'espace de noms : cibler la version d'Office

- III. Activation d'un onglet

- IV. Redimensionnement des groupes de contrôles

- V. Centrage vertical des contrôles

- VI. Les menus contextuels

- VII. La vue Backstage

- VIII. Conclusion

I - Introduction

Cet article met en avant quelques nouveautés du ruban Office 2010.

Pour une première découverte du ruban, consultez ces tutoriels :
— Programmez et personnalisez le ruban de vos applications Access 2007.
— La personnalisation du ruban sous Excel 2007.
— Personnalisation du ruban : Les fonctions d'appel CallBacks.
— Comment personnaliser le Ruban de Word 2007.

II - L'espace de noms : cibler la version d'Office

L'espace de noms (Namespace) est déterminé par l'attribut xmlns de la balise customUI.

Pour un ruban sous Office 2007, on écrivait :

Ruban Office 2007

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

Pour un ruban Office 2010, la valeur de xmlns est différente :

Ruban Office 2010

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">

Un ruban Office 2007 fonctionnera sous Office 2010. La réciproque est fausse.

III - Activation d'un onglet

Cette fonctionnalité manquait cruellement au ruban d'Office 2007.
Il est désormais possible d'activer un onglet en VBA.

Il faut au préalable déclarer un objet de type IRibbonUI et l'initialiser au chargement du ruban (callback onLoad).

Ruban avec CallBack au chargement

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="RibbonOnLoad">

</customUI>

Code à écrire dans un module VBA

Public oRibbon As IRibbonUI

Sub RibbonOnLoad(Ribbon As IRibbonUI)
Set oRibbon = Ribbon
End Sub

Ensuite, il suffit d'utiliser une des méthodes suivantes :
— ActivateTab pour un onglet personnalisé.
— ActivateTabMso pour un onglet standard.
— ActivateTabQ pour un onglet partagé (entre plusieurs compléments).

Par exemple, le code suivant...

oRibbon.ActivateTabMso "TabFormulas"

...active l'onglet Formules dans Excel.

Téléchargez la liste des idMso des onglets standards.
(Excel 2010 requis pour ouvrir cette liste.)

IV - Redimensionnement des groupes de contrôles

Les groupes de contrôles (tag group) possèdent un attribut supplémentaire : autoScale.

Cet attribut peut prendre les valeurs suivantes :
— true ou 1 pour activer le redimensionnement ;
— false ou 0 pour le désactiver.

Lorsque le redimensionnement est activé, les contrôles changent de taille lorsqu'on redimensionne horizontalement la fenêtre contenant le ruban.
Ce changement de taille se traduit par :
1 - le passage des boutons de taille large vers normal ;
2 - la disparition des étiquettes (label);
3 - le regroupement des boutons en un seul.

Voici les différentes étapes :

0 - Affichage complet :

1 - Taille des boutons :

2 - Disparition des étiquettes :

3 - Regroupement :

Lors du regroupement, le bouton prend l'image du groupe : ici BlogHomePage.

Voici le XML de ce ruban :

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab id="tab1" label="Test autoScale">
<group id="group1" imageMso="BlogHomePage" label="Groupe de contrôles" autoScale="true">
<button id="button1" label="Valider" imageMso="AcceptInvitation"/>
<button id="button2" label="Sauvegarder" imageMso="FileSave"/>
<editBox id="editBox1" label="Nom :"/>
<button id="button3" label="Supprimer" imageMso="InkDeleteAllInk"/>
<gallery id="gallery1" imageMso="AccessListContacts" label="Liste"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

V - Centrage vertical des contrôles

En plus de l'attribut autoScale vu précédemment, l'attribut centerVertically est ajouté aux attributs des groupes (tag group).

Cet attribut permet de centrer verticalement les contrôles au sein d'un groupe.

Par exemple si l'on a cinq contrôles de taille normal, on obtiendra trois éléments sur une colonne et deux éléments en haut d'une deuxième colonne :

Le tag centerVertically peut prendre la valeur true ou 1 pour demander le centrage des éléments :

Voici le XML de ce ruban :

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab id="tab1" label="Test autoScale">
<group id="group1" imageMso="BlogHomePage" label="Groupe de contrôles" centerVertically="true">
<button id="button1" label="Valider" imageMso="AcceptInvitation"/>
<button id="button2" label="Sauvegarder" imageMso="FileSave"/>
<editBox id="editBox1" label="Nom :"/>
<button id="button3" label="Supprimer" imageMso="InkDeleteAllInk"/>
<gallery id="gallery1" imageMso="AccessListContacts" label="Liste"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

VI - Les menus contextuels

Il est désormais possible de modifier les menus contextuels dans le même XML que celui du ruban.
Par contre, cela se limite aux menus contextuels standards.
Il n'est pas possible de modifier un menu contextuel personnalisé de cette manière.

Exemple de modification du menu contextuel affiché par clic droit sur une image :

Notez les deux dernières entrées de menu qui ont été rajoutées.

Voici le XML de ce ruban :

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<contextMenus>
<contextMenu idMso="ContextMenuPicture">
<button label="Image depuis fichier" idMso="PictureInsertFromFile"/>
<checkBox id="checkBox1" label="Ma case à cocher" onAction="Ribbon_OnAction_Press"/>
</contextMenu>
</contextMenus>
</customUI>

Téléchargez la liste des idMso qui contient la liste des menus contextuels.
(Excel 2010 requis pour ouvrir cette liste.)

VII - La vue Backstage

L'ancien bouton Office a été remplacé par un bouton Fichier .

Ce bouton ouvre la vue Backstage qui est paramétrable :

Voici le XML de ce ruban :

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<backstage>
<button id="button1" insertBeforeMso="FileOpen" label="Mon bouton dans la vue BackStage" imageMso="NewTask"/>
<tab id="tab1" label="Mon onglet" insertBeforeMso="TabInfo">
<firstColumn>
<taskFormGroup id="taskFormGroup1">
<category id="category1" label="Category 1">
<task id="task1" label="Task 1">
<group id="group1" label="Group 1">
<bottomItems>
<hyperlink id="hyperlink1" label="http://Arkham46.developpez.com" target="http://Arkham46.developpez.com"/>
</bottomItems>
</group>
</task>
</category>
</taskFormGroup>
</firstColumn>
</tab>
</backstage>
</customUI>

Consultez ce tutoriel : Personnaliser la vue Backstage d'Access 2010

VIII - Conclusion

Finalement, nous avons découvert assez peu de nouveautés majeures hormis la vue Backstage.

La programmation du ruban reste identique à celle que nous connaissions sur Office 2007.

Vous trouverez des informations (en anglais) sur ces nouveautés sur MSDN :
http://msdn.microsoft.com/en-us/library/ee692951%28office.14%29.aspx

Merci à Watcher pour sa relecture.