Article de Microsoft : De nouveaux moyens d'offrir un plus à l'utilisateur .
Les développeurs d'applications ont tiré parti des outils et des structures de programmation des versions antérieures d'Office pour étendre l'interface de manière créative. Par exemple, le modèle d'objet CommandBars a permis aux développeurs de créer des solutions riches dans leurs applications Office personnalisées. Dans cette optique, la version 2007 d'Office propose un modèle innovant dont les développeurs peuvent se servir pour apporter un plus à l'utilisateur. Vous utilisez XML (Extensible Markup Language) et l'un des différents langages de programmation traditionnels pour la manipulation des composants qui constituent l'interface ruban. Étant donné que le langage XML se présente sous la forme de texte brut, vous pouvez créer des fichiers de personnalisation dans n'importe quel éditeur de texte, ce qui simplifie l'exploitation de l'interface. Vous pouvez également réutiliser des fichiers personnalisés d'interface ruban sans que cela entraîne d'énormes modifications, car chaque application utilise le même modèle de programmation. Par exemple, vous pouvez réutiliser les fichiers personnalisés d'interface ruban créés sous Word 2007, Excel 2007, Access 2007 ou PowerPoint 2007.
L'utilisation des fichiers de balisage XML pour personnaliser l'interface permet de réduire considérablement la nécessité d'avoir des compléments complexes basés sur le modèle d'objet CommandBars. Néanmoins, les compléments écrits dans des versions antérieures d'Office fonctionnent toujours dans l'interface ruban avec peu ou pas de modifications. Le sujet des compléments est abordé ultérieurement dans cet article.
Comment personnaliser le ruban d'Excel 2007 ?
Déplacer la
position de l'onglet
Une image Office Icon Gallery sur le bouton
Une image perso sur le bouton
Un lien hypertexte sur le bouton
Quelques astuces ...
Créez un nouveau classeur dans Excel 2007 et enregistrez-le
sous forme d'un Classeur Excel (prenant en charge les macros)(*.xlsm)
avec l'extension .xlsm . Le suffixe m. signifie que le classeur contient des
macros. Appelez le "testruban.xlsm" (par exemple)
Dans l'Editeur Visual Basic (Alt + F11) insérez un nouveau module et collez ce code :
Sub test(ByVal control As IRibbonControl)
MsgBox ("Bonjour")
End Sub
Enregistrez et fermez le classeur.
Télécharger et installez l'outil "Editeur de Ruban" Microsoft Office 2007 Custom UI Editor que vous trouverez ici (Un excellent outil pour ne pas manipuler directement le fichier XML.
http://dj.joss.free.fr/download/CustomUIEditorSetup.zip
Lancez "Custom UI Editor"
l'éditeur de Ruban
Dans l'éditeur ouvrez votre classeur "testruban.xlsm"
Copiez le code xml ci-dessous et collez le dans l'onglet Custom UI
<
customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"><
ribbon startFromScratch="false"><
tabs><
tab id = "Perso" label="Perso" insertAfterMso="TabView"><
group id="Message" label="Message"><
button id="Coucou" label="Coucou" onAction="test" size="large" imageMso="HappyFace" /></
group></
tab></
tabs></
ribbon></
customUI>
Le nom de la macro à exécuter se trouve apres la balise onAction
onAction="lenomdelamacro"
Il est tout à fait possible d'exécuter une macro placée dans le "ThisWorkbook"
onAction
="ThisWorkbook.lenomdelamacro" (Attention au point apres le ThisWorkbook)
Enregistrez et fermez.
Dans excel 2007 ouvrez le fichier testruban.xlsm
Vous trouverez un nouvel onglet appelé Perso après l'onglet Affichage.
Cliquez et admirez le résultat.
Cliquez sur le bouton et le message "Bonjour" s'affiche.
C'est la balise "insertAfterMso" du code XML qui détermine la position de l'onglet dans le ruban.
<tab id = "Perso" label="Perso" insertAfterMso="TabView">
Ici l'onglet est placé après celui qui se nomme "Affichage" (TabView)
Pour le placer à la fin il suffit d'indiquer "insertAfterMso="TabAddIns"" (Compléments, le dernier onglet)
Ce qui donne :
<tab id = "Perso" label="Perso" insertAfterMso="TabAddins">
Liste des "idTab"
Accueil =>TabHome
Insertion=>TabInsert
Mise en page=>TabPageLayoutExcel
Formules=>TabFormulas
Donnees=>TabData
Revision=>TabReview
Affichage=>TabView
Developpeur=>TabDeveloper
Complements=>TabAddIns
Une image Office Icon Gallery sur le bouton
C'est la balise "imageMso" du code XML qui détermine l'image (Icône)
imageMso="HappyFace"
<
button id="Coucou" label="Coucou" onAction="test" size="large" imageMso="HappyFace" />Pour avoir les noms des différentes images (les icônes) téléchargez le classeur "Office2007IconsGallery.xlsm"
http://dj.joss.free.fr/download/Office2007IconsGallery.xlsm
Cliquez sur l'onglet "Développeur" et vous avez toutes les "Gallery" à votre disposition.
En passant la souris sur les icônes une info bulle vous donne le nom de l'icône choisie
Dans l'éditeur ouvrez votre classeur "testruban.xlsm"
Cliquez sur le bouton "Insert Icons" et dans la boîte qui s'affiche sélectionnez
votre image
Cliquez sur Ouvrir et l'image sélectionnée apparait alors dans
une nouvelle fenêtre à droite.
Dans l'exemple ci-dessous l'image est
"noir.jpg"
Le format de l'image peut être : gif, jpeg, png, ico etc...
(Attention à ne pas choisir une image trop "lourde")
Modifiez la balise "imageMso" du code XML par
celle çi "image"
Et indiquez le nom de l'image que vous venez
d'insérer sans l'extension.
image
="noir"
Enregistrez et fermez.
Un lien hypertexte sur le bouton
Il est tout à fait possible de
mettre un lien hypertexte sur un bouton
Par exemple pour ouvrir une page web ou bien simplement ouvrir un fichier d'aide
Dans l'Editeur Visual Basic (Alt + F11) insérez un nouveau
module et collez ce code :
Private Declare Function ShellExecute Lib "shell32.dll"
Alias "ShellExecuteA" _
(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpfile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Public Sub OpenBrowser(ByVal control As IRibbonControl)
ShellExecute 0&, vbNullString, control.Tag, vbNullString, vbNullString,
SW_SHOWNORMAL
End Sub
'La macro lancera le lien indiqué après la balise "tag" du code XML (Tag="le lien")
Dans l'éditeur ouvrez votre classeur "testruban.xlsm"
<
group id="Services" label="Visitez mon site Web"><
button id="VBAXL" label="Site VBAXL" onAction="OpenBrowser" size="large" image="vbaxl" tag="http://dj.joss.free.fr" /></
group>Et voila le résultat
Il est très facile de supprimer toute l'interface
utilisateur prédéfinie d'excel. <customUI
xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <
Pour cela définissez StartFromScratch ="true"
dans la balise <ribbon> principale
Les principaux onglets prédéfinis, la barre d'outils Accès
rapide et les commandes du menu
à l'exception de Nouveau, Ouvrir et
Enregistrer seront masqués.
Comment ne masquer qu'un seul onglet ?
L'onglet "Accueil" par exemple. <
Il suffit de placer ce code <tab idMso="TabHome"
visible="false"/> après la balise <tabs>
<tab idMso="TabHome" visible="false"/>
Comment ajouter l'onglet Font (Police) à votre barre perso ?
En le plaçant à la fin de votre barre par exemple.
<
Il suffit de placer ce
code <group idMso="GroupFont" /> avant la balise </tab>
</tab>