Office 2010 : les nouveautés du Ruban
Date de publication : 09/03/10 , Date de mise à jour : 09/03/10
Par
Thierry GASPERMENT (arkham46.developpez.com/)
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
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.
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>
|
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>
|
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.


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.
Cette page est déposée.