X. Callback▲
Les fonctions de rappel (appelées Callback), permettent d'interagir sur le contenu ou sur le visuel des contrôles.
Celles-ci sont appelées au chargement de la vue Backstage et lorsqu'on invalide le ruban ou un contrôle.
Dans les différents exemples j'ai opté pour un seul type d'appel et de solution par Select Case sur l'ID du contrôle pour exécuter le code. Je trouve ceci beaucoup plus clair et surtout plus facile au niveau maintenance. Vous pouvez créer une procédure différente pour chaque Callback mais pensez à bien structurer celle-ci et surtout à bien les nommer.
X-1. onAction▲
Nom du Ruban : rubonAction
Cette fonction permet de lancer une procédure VBA sur action du contrôle.
<button
id
=
"btnTest1"
label
=
"Test"
onAction
=
"clbckonAction"
/>
Sur action du bouton la procédure clbckonAction sera exécutée :
Sub
clbckonAction
(
control As
IRibbonControl)
Select
Case
control.Id
Case
"btnTest1"
MsgBox
"Vous venez de cliquer sur le bouton"
End
Select
End
Sub
X-1-1. Case à cocher▲
Nom du Ruban : rubonActionPress
Cette fonction permet de lancer une procédure VBA sur l'action d'une case à cocher. La procédure de rappel renvoie une valeur de type booléen correspondant à l'état du contrôle.
Code XML :
<customUI
xmlns
=
"http://schemas.microsoft.com/office/2009/07/customui"
onLoad
=
"oldBackstage"
>
<backstage>
<tab
id
=
"tab1"
label
=
"Onglet Perso"
>
<firstColumn>
<group
id
=
"group1"
>
<bottomItems>
<button
id
=
"btnPressed1"
label
=
"Bouton N° 1"
onAction
=
"clbckonAction"
/>
<button
id
=
"btnPressed2"
label
=
"Bouton 2"
onAction
=
"clbckonAction"
/>
<checkBox
id
=
"chkPressed"
label
=
"Case à cocher"
getPressed
=
"clbckgetPressed"
onAction
=
"clbckonActionPress"
/>
</bottomItems>
</group>
</firstColumn>
</tab>
</backstage>
</customUI>
Code VBA : la valeur est retournée par pressed
Option
Compare Database
Public
UIRubanPerso As
IRibbonUI
Public
blnTest As
Boolean
'
Sub
oldBackstage
(
UIRuban As
IRibbonUI)
Set
UIRubanPerso =
UIRuban
blnTest =
False
End
Sub
Sub
clbckonAction
(
control As
IRibbonControl)
Select
Case
control.id
Case
"btnPressed1"
blnTest =
False
Case
"btnPressed2"
blnTest =
True
End
Select
UIRubanPerso.Invalidate
End
Sub
Sub
clbckonActionPress
(
control As
IRibbonControl, pressed As
Boolean
)
Select
Case
control.id
Case
"chkPressed"
MsgBox
"La case à cocher à pour valeur : "
&
pressed
End
Select
End
Sub
X-1-2. Liste▲
Nom du Ruban : rubCombo
Cette fonction permet de lancer une procédure VBA sur l'action d'une liste de type dropDown. La procédure de rappel renvoi l'ID de la sélection du contrôle ainsi que l'index.
Code XML :
<dropDown id="comboBox1" label="Liste déroulante" onAction="clbckOnActionListe">
Code VBA :
Sub
clbckOnActionListe
(
control As
IRibbonControl, itemID As
String
, itemIndex As
Integer
)
Select
Case
control.id
Case
"comboBox1"
MsgBox
"itemID : "
&
itemID &
vbCrLf
&
"itemIndex : "
&
itemIndex
End
Select
End
Sub
X-2. getEnabled▲
Nom du Ruban : rubgetEnabled
Cette fonction permet de définir l'activation ou non du contrôle.
Voici le code XML :
<button
id
=
"button1"
label
=
"Test"
getEnabled
=
"clbckgetEnabled"
/>
Lors du chargement de la vue Backstage la fonction clbckgetEnabled sera exécutée, la valeur pour le contrôle est retournée par le paramètre enabled.
Sub
clbckgetEnabled
(
control As
IRibbonControl, ByRef
enabled)
Select
Case
control.id
Case
"button1"
enabled =
blnTest
End
Select
End
Sub
Dans notre exemple, la variable blnTest de type booléen est chargée à False au lancement de la vue Backstage.
Voici le résultat :
Maintenant nous allons rendre dynamique cette vue, ajouter un autre bouton qui lors de son action activera le premier bouton et se désactivera et vice-versa entre les deux boutons.
Code XML :
<customUI
xmlns
=
"http://schemas.microsoft.com/office/2009/07/customui"
onLoad
=
"oldBackstage"
>
<backstage>
<tab
id
=
"tab1"
label
=
"Onglet Perso"
>
<firstColumn>
<group
id
=
"group1"
>
<bottomItems>
<button
id
=
"button1"
label
=
"Test"
getEnabled
=
"clbckgetEnabled"
onAction
=
"clbckonAction"
/>
<button
id
=
"button2"
label
=
"btn Action"
onAction
=
"clbckonAction"
getEnabled
=
"clbckgetEnabled"
/>
</bottomItems>
</group>
</firstColumn>
</tab>
</backstage>
</customUI>
On peut distinguer que chaque bouton appelle les procédures clbckgetEnabled et clbckonAction.
Voici le code VBA :
Option
Compare Database
Global
UIRubanPerso As
IRibbonUI
Public
blnTest As
Boolean
'
Sub
oldBackstage
(
UIRuban As
IRibbonUI)
Set
UIRubanPerso =
UIRuban
End
Sub
Sub
clbckgetEnabled
(
control As
IRibbonControl, ByRef
enabled)
Select
Case
control.id
Case
"button1"
enabled =
blnTest
Case
"button2"
enabled =
Not
(
blnTest)
End
Select
End
Sub
Sub
clbckonAction
(
control As
IRibbonControl)
Select
Case
control.id
Case
"button1"
blnTest =
False
Case
"button2"
blnTest =
True
End
Select
UIRubanPerso.Invalidate
End
Sub
On déclare une variable Global pour instancier le Ruban, puis une variable Public, toutes deux de type booléen. On instancie la variable pour le Ruban et on affecte sa valeur à un bouton et la valeur inverse à l'autre bouton. Sur action des boutons on modifie la variable et on demande le rechargement de la Vue pour sa mise à jour.
X-3. getVisible▲
Nom du Ruban : rubgetVisible
Cette fonction permet de définir la visibilité ou non du contrôle.
Voici le code XML :
<button
id
=
"btnVisible1"
label
=
"Test"
getVisible
=
"clbckgetVisible"
/>
Lors du chargement de la vue Backstage la fonction clbckgetVisible sera exécutée, la valeur pour le contrôle est retournée par le paramètre visible.
Sub
clbckgetVisible
(
control As
IRibbonControl, ByRef
visible)
Select
Case
control.id
Case
"btnVisible1"
visible =
blnTest
End
Select
End
Sub
Dans notre exemple, la variable blnTest de type booléen, est chargée à False au lancement de la vue Backstage. Par défaut le contrôle n'est pas visible.
Nous allons refaire le même jeu que le Callbak précédent sauf qu'au lieu d'activer/désactiver nous allons rendre visibles ou non les boutons.
XML :
<customUI
xmlns
=
"http://schemas.microsoft.com/office/2009/07/customui"
onLoad
=
"oldBackstage"
>
<backstage>
<tab
id
=
"tab1"
label
=
"Onglet Perso"
>
<firstColumn>
<group
id
=
"group1"
>
<bottomItems>
<button
id
=
"btnVisible1"
label
=
"Test"
onAction
=
"clbckonAction"
getVisible
=
"clbckgetVisible"
/>
<button
id
=
"btnVisible2"
label
=
"btn Action"
onAction
=
"clbckonAction"
getVisible
=
"clbckgetVisible"
/>
</bottomItems>
</group>
</firstColumn>
</tab>
</backstage>
</customUI>
VBA :
Option
Compare Database
Global
UIRubanPerso As
IRibbonUI
Public
blnTest As
Boolean
'
Sub
oldBackstage
(
UIRuban As
IRibbonUI)
Set
UIRubanPerso =
UIRuban
blnTest =
False
End
Sub
Sub
clbckonAction
(
control As
IRibbonControl)
Select
Case
control.id
Case
"btnVisible1"
blnTest =
False
Case
"btnVisible2"
blnTest =
True
End
Select
UIRubanPerso.Invalidate
End
Sub
Sub
clbckgetVisible
(
control As
IRibbonControl, ByRef
visible)
Select
Case
control.id
Case
"btnVisible1"
If
blnTest =
True
Then
visible =
False
Else
visible =
True
End
If
Case
"btnVisible2"
If
blnTest =
True
Then
visible =
True
Else
visible =
False
End
If
End
Select
End
Sub
X-4. getLabel▲
Nom du Ruban : rubgetLabel
Cette fonction permet de définir le texte qui sera affiché dans le label du contrôle.
Voici le code XML :
<button
id
=
"button1"
getLabel
=
"clbckgetLabel"
/>
Lors du chargement de la vue Backstage la fonction clbckgetLabel sera exécutée, la valeur pour le contrôle est retournée par le paramètre label.
Sub
clbckgetLabel
(
control As
IRibbonControl, ByRef
label)
Select
Case
control.id
Case
"button1"
label =
IIf
(
blnTest, "Sélectionné"
, "Non Sélectionné"
)
End
Select
End
Sub
Toujours sur le principe précédent nous allons modifier le label des boutons en fonction de leur sélection.
XML :
<customUI
xmlns
=
"http://schemas.microsoft.com/office/2009/07/customui"
onLoad
=
"oldBackstage"
>
<backstage>
<tab
id
=
"tab1"
label
=
"Onglet Perso"
>
<firstColumn>
<group
id
=
"group1"
>
<bottomItems>
<button
id
=
"button1"
onAction
=
"clbckonAction"
getLabel
=
"clbckgetLabel"
/>
<button
id
=
"button2"
onAction
=
"clbckonAction"
getLabel
=
"clbckgetLabel"
/>
</bottomItems>
</group>
</firstColumn>
</tab>
</backstage>
</customUI>
VBA :
Option
Compare Database
Global
UIRubanPerso As
IRibbonUI
Public
blnTest As
Boolean
'
Sub
oldBackstage
(
UIRuban As
IRibbonUI)
Set
UIRubanPerso =
UIRuban
blnTest =
False
End
Sub
Sub
clbckonAction
(
control As
IRibbonControl)
Select
Case
control.id
Case
"button1"
blnTest =
False
Case
"button2"
blnTest =
True
End
Select
UIRubanPerso.Invalidate
End
Sub
Sub
clbckgetLabel
(
control As
IRibbonControl, ByRef
label)
Select
Case
control.id
Case
"button1"
label =
IIf
(
blnTest, "Non Sélectionné"
, "Sélectionné"
)
Case
"button2"
label =
IIf
(Not
(
blnTest), "Non Sélectionné"
, "Sélectionné"
)
End
Select
End
Sub
X-5. getImage▲
Nom du Ruban : rubgetImage
Cette fonction permet de définir l'image du contrôle.
Voici le code XML :
<button
id
=
"button1"
label
=
"Bouton 1"
getImage
=
"clbckgetImage"
/>
Lors du chargement de la vue Backstage la fonction clbckgetImage sera exécutée, la valeur pour le contrôle est retournée par le paramètre image.
Sub
clbckgetImage
(
control As
IRibbonControl, ByRef
image)
Select
Case
control.id
Case
"button1"
Set
image =
LoadPicture
(
strCheminBDD &
"ok.ico"
)
End
Select
End
Sub
Nous allons maintenant changer l'icône du contrôle en fonction de sa sélection, celle-ci sera représentée par une coche.
Code XML :
<customUI
xmlns
=
"http://schemas.microsoft.com/office/2009/07/customui"
onLoad
=
"oldBackstage"
>
<backstage>
<tab
id
=
"tab1"
label
=
"Onglet Perso"
insertBeforeMso
=
"TabRecent"
>
<firstColumn>
<group
id
=
"group1"
>
<bottomItems>
<button
id
=
"button1"
label
=
"Bouton 1"
getImage
=
"clbckgetImage"
onAction
=
"clbckonAction"
/>
<button
id
=
"button2"
label
=
"Bouton 2"
getImage
=
"clbckgetImage"
onAction
=
"clbckonAction"
/>
</bottomItems>
</group>
</firstColumn>
</tab>
</backstage>
</customUI>
Code VBA :
Option
Compare Database
Global
UIRubanPerso As
IRibbonUI
Public
blnTest As
Boolean
'
Sub
oldBackstage
(
UIRuban As
IRibbonUI)
Set
UIRubanPerso =
UIRuban
blnTest =
False
End
Sub
Sub
clbckonAction
(
control As
IRibbonControl)
Select
Case
control.id
Case
"button1"
blnTest =
False
Case
"button2"
blnTest =
True
End
Select
UIRubanPerso.Invalidate
End
Sub
Sub
clbckgetImage
(
control As
IRibbonControl, ByRef
image)
' déclaration des objets
Dim
objOK As
Object
Dim
objNOK As
Object
' instance des objets
Set
objOK =
LoadPicture
(
strCheminBDD &
"ok.ico"
)
Set
objNOK =
LoadPicture
(
strCheminBDD &
"nok.ico"
)
Select
Case
control.Id
Case
"button1"
Set
image =
IIf
(
blnTest, objNOK, objOK)
Case
"button2"
Set
image =
IIf
(Not
(
blnTest), objNOK, objOK)
End
Select
End
Sub
X-6. getKeytip▲
Nom du Ruban : rubgetKeytip
Cette fonction permet de définir le raccourci clavier du contrôle, par appui de la touche ALT.
Voici le code XML :
<button
id
=
"button1"
label
=
"Bouton 1"
getKeytip
=
"clbckgetKeytip"
/>
Code VBA:
Sub
clbckgetKeytip
(
control As
IRibbonControl, ByRef
keytip)
Select
Case
control.id
Case
"button1"
keytip =
"BT1"
End
Select
End
Sub
Voici un exemple avec un onglet personnalisé et deux boutons.
Code XML :
<customUI
xmlns
=
"http://schemas.microsoft.com/office/2009/07/customui"
onLoad
=
"oldBackstage"
>
<backstage>
<tab
id
=
"tab1"
label
=
"Onglet Perso"
insertBeforeMso
=
"TabRecent"
keytip
=
"BY7"
>
<firstColumn>
<group
id
=
"group1"
>
<bottomItems>
<button
id
=
"button1"
label
=
"Bouton 1"
onAction
=
"clbckonAction"
getKeytip
=
"clbckgetKeytip"
/>
<button
id
=
"button2"
label
=
"Bouton 2"
onAction
=
"clbckonAction"
getKeytip
=
"clbckgetKeytip"
/>
</bottomItems>
</group>
</firstColumn>
</tab>
</backstage>
</customUI>
Code VBA :
Sub
clbckgetKeytip
(
control As
IRibbonControl, ByRef
keytip)
Select
Case
control.id
Case
"button1"
keytip =
"BT1"
Case
"button2"
keytip =
"BT2"
End
Select
End
Sub
Sur appui de la touche ALT une liste de raccourcis apparaît sur le volet de navigation. Notre onglet personnalisé a bien le raccourci BY7. En tapant les lettres, l'onglet est sélectionné et on aperçoit ensuite les raccourcis des deux boutons BT1 et BT2.
X-7. getTitle▲
Nom du Ruban : rubgetTitle
Cette fonction permet de définir le titre du contrôle.
Voici le code XML :
<customUI
xmlns
=
"http://schemas.microsoft.com/office/2009/07/customui"
onLoad
=
"oldBackstage"
>
<backstage>
<tab
id
=
"tab1"
label
=
"Onglet Perso"
getTitle
=
"clbckgetTitle"
>
<firstColumn>
<group
id
=
"group1"
>
<bottomItems>
<button
id
=
"button1"
label
=
"Bouton 1"
onAction
=
"clbckonAction"
/>
<button
id
=
"button2"
label
=
"Bouton 2"
onAction
=
"clbckonAction"
/>
</bottomItems>
</group>
</firstColumn>
</tab>
</backstage>
</customUI>
Code VBA :
Sub
clbckgetTitle
(
control As
IRibbonControl, ByRef
title)
Dim
strTitre As
String
strTitre =
"Titre : Onglet Personnalisé - "
Select
Case
control.id
Case
"tab1"
title =
IIf
(
blnTest, strTitre &
"Bouton 2"
, strTitre &
"Bouton 1"
)
End
Select
End
Sub
Voici le résultat :
Le titre devient dynamique, et change en fonction du bouton sélectionné.
X-8. getShowLabel▲
Nom du Ruban : rubgetShowLabel
Cette fonction permet de définir l'affichage ou non de l'étiquette du contrôle.
Voici le code XML :
<group
id
=
"group1"
label
=
"Label du Groupe"
getShowLabel
=
"clbckgetShowLabel"
>
Lors du chargement de la vue Backstage la fonction clbckgetShowLabel sera exécutée, la valeur pour le contrôle est retournée par le paramètre showlabel
Sub
clbckgetShowLabel
(
control As
IRibbonControl, ByRef
showLabel)
Select
Case
control.id
Case
"group1"
showLabel =
False
End
Select
End
Sub
X-9. getHelperText▲
Nom du Ruban : getHelperText
Cette fonction permet de définir la valeur du Helper (texte placé sous le label).
Voici le code XML :
<customUI
xmlns
=
"http://schemas.microsoft.com/office/2009/07/customui"
onLoad
=
"oldBackstage"
>
<backstage>
<tab
id
=
"tab1"
label
=
"Onglet Perso"
>
<firstColumn>
<group
id
=
"group1"
label
=
"Label du Groupe"
getHelperText
=
"clbckgetHelperText"
>
<bottomItems>
<button
id
=
"button1"
label
=
"Bouton 1"
/>
</bottomItems>
</group>
</firstColumn>
</tab>
</backstage>
</customUI>
Lors du chargement de la vue Backstage la fonction clbckgetHelperTextsera exécutée, la valeur pour le contrôle est retournée par le paramètre helperText
Sub
clbckgetHelperText
(
control As
IRibbonControl, ByRef
helperText)
Select
Case
control.id
Case
"group1"
helperText =
"Texte Auxiliaire"
End
Select
End
Sub
X-10. getStyle▲
Nom du Ruban : getStyle
Cette fonction permet de définir le style d'affichage du contrôle.
Voici le code XML :
<group
id
=
"group1"
label
=
"Label du Groupe"
getStyle
=
"clbckgetStyle"
>
Lors du chargement de la vue Backstage la fonction clbckgetStyle sera exécutée. La valeur pour le contrôle est retournée par le paramètre style, et elle est de type numérique :
- 0 = Normale;
- 1 = Warning;
- 2 = Error.
Sub
clbckgetStyle
(
control As
IRibbonControl, ByRef
style)
Select
Case
control.id
Case
"group1"
style =
1
'warning
End
Select
End
Sub
Dans l'exemple suivant nous modifions le style du groupe lors de la sélection du bouton.
Code XML :
<customUI
xmlns
=
"http://schemas.microsoft.com/office/2009/07/customui"
onLoad
=
"oldBackstage"
>
<backstage>
<tab
id
=
"tab1"
label
=
"Onglet Perso"
>
<firstColumn>
<group
id
=
"group1"
label
=
"Label du Groupe"
getStyle
=
"clbckgetStyle"
>
<bottomItems>
<button
id
=
"button1"
label
=
"Bouton 1"
onAction
=
"clbckonAction"
/>
<button
id
=
"button2"
label
=
"Bouton 2"
onAction
=
"clbckonAction"
/>
</bottomItems>
</group>
</firstColumn>
</tab>
</backstage>
</customUI>
Code VBA :
Public
blnTest As
Boolean
Sub
clbckonAction
(
control As
IRibbonControl)
Select
Case
control.id
Case
"button1"
blnTest =
False
Case
"button2"
blnTest =
True
End
Select
UIRubanPerso.Invalidate
End
Sub
Sub
clbckgetStyle
(
control As
IRibbonControl, ByRef
style)
Select
Case
control.id
Case
"group1"
style =
IIf
(
blnTest, 2
, 1
)
End
Select
End
Sub
Résultat :
X-11. getScreentip▲
Nom du Ruban : getScreentip
Cette fonction permet de définir l'infobulle du contrôle.
Voici le code XML :
<button
id
=
"button1"
label
=
"Bouton 1"
expand
=
"vertical"
getScreentip
=
"clbckgetScreentip"
/>
Code VBA:
Sub
clbckgetScreentip
(
control As
IRibbonControl, ByRef
screentip)
Select
Case
control.id
Case
"button1"
screentip =
"Screentip titre de l'info bulle"
End
Select
End
Sub
X-12. getSupertip▲
Nom du Ruban : getSupertip
Cette fonction permet de définir le texte multiligne de l'infobulle.
Pour réaliser un retour à ligne utilisez :
Voici le code XML :
<button
id
=
"button1"
label
=
"Bouton 1"
expand
=
"vertical"
getScreentip
=
"clbckgetScreentip"
getSupertip
=
"clbckgetSupertip"
/>
Code VBA :
Sub
clbckgetSupertip
(
control As
IRibbonControl, ByRef
supertip)
Select
Case
control.id
Case
"button1"
supertip =
"Supertip corps du message de l'infobulle"
End
Select
End
Sub
X-13. getDescription▲
Nom du Ruban : getDescription
Cette fonction permet de définir la description d'une case à cocher contenue dans un menu.
Voici le code XML :
<checkBox
id
=
"checkBox1"
getDescription
=
"clbckgetDescription"
/>
Code VBA:
Sub
clbckgetDescription
(
control As
IRibbonControl, ByRef
description)
Select
Case
control.id
Case
"checkBox1"
description =
"Description de la case à cocher"
End
Select
End
Sub
X-14. getPressed▲
Nom du Ruban : getPressed
Cette fonction permet de définir la valeur d'une case à cocher.
Voici le code XML :
<checkBox
id
=
"checkBox1"
label
=
"Case à cocher"
getPressed
=
"clbckgetPressed"
/>
Code VBA :
Sub
clbckgetPressed
(
control As
IRibbonControl, ByRef
pressed)
Select
Case
control.id
Case
"checkBox1"
pressed =
True
End
Select
End
Sub
Dans le cas présent on force la valeur de la case à 1.
Maintenant nous allons changer la valeur de la case en fonction de la sélection de deux boutons :
Code XML :
<customUI
xmlns
=
"http://schemas.microsoft.com/office/2009/07/customui"
onLoad
=
"oldBackstage"
>
<backstage>
<tab
id
=
"tab1"
label
=
"Onglet Perso"
>
<firstColumn>
<group
id
=
"group1"
>
<bottomItems>
<button
id
=
"button1"
label
=
"Bouton N° 1"
onAction
=
"clbckonAction"
/>
<button
id
=
"button2"
label
=
"Bouton 2"
onAction
=
"clbckonAction"
/>
<checkBox
id
=
"checkBox1"
label
=
"Case à cocher"
getPressed
=
"clbckgetPressed"
/>
</bottomItems>
</group>
</firstColumn>
</tab>
</backstage>
</customUI>
Code VBA :
Option
Compare Database
Global
UIRubanPerso As
IRibbonUI
Public
blnTest As
Boolean
'
Sub
oldBackstage
(
UIRuban As
IRibbonUI)
Set
UIRubanPerso =
UIRuban
blnTest =
False
End
Sub
Sub
clbckonAction
(
control As
IRibbonControl)
Select
Case
control.id
Case
"button1"
blnTest =
False
Case
"button2"
blnTest =
True
End
Select
UIRubanPerso.Invalidate
End
Sub
Sub
clbckgetPressed
(
control As
IRibbonControl, ByRef
pressed)
Select
Case
control.id
Case
"checkBox1"
pressed =
blnTest
End
Select
End
Sub
X-15. onChange▲
Nom du Ruban : rubonChange
Dans notre exemple, un message s'affiche donnant la valeur sélectionnée dans la liste.
Voici le code XML :
<customUI
xmlns
=
"http://schemas.microsoft.com/office/2009/07/customui"
onLoad
=
"oldBackstage"
>
<backstage>
<tab
id
=
"tab1"
label
=
"Onglet Perso"
>
<firstColumn>
<group
id
=
"group1"
>
<bottomItems>
<comboBox
id
=
"comboBox1"
label
=
"Liste déroulante"
onChange
=
"clbckonChange"
>
<item
id
=
"item1"
label
=
"Ligne 1"
/>
<item
id
=
"item2"
label
=
"Ligne 2"
/>
<item
id
=
"item3"
label
=
"Ligne 3"
/>
</comboBox>
</bottomItems>
</group>
</firstColumn>
</tab>
</backstage>
</customUI>
Code VBA :
Sub
clbckonChange
(
control As
IRibbonControl, text As
String
)
Select
Case
control.id
Case
"comboBox1"
MsgBox
"Vous avez sélectionné "
&
text
End
Select
End
Sub
Dans notre exemple, un message s'affiche donnant la valeur sélectionnée dans la liste.
X-16. getText▲
Nom du Ruban : rubgetText
Cette fonction permet de définir un texte qui sera affiché dans la zone de saisie de la liste déroulante.
Voici le code XML :
<customUI
xmlns
=
"http://schemas.microsoft.com/office/2009/07/customui"
onLoad
=
"oldBackstage"
>
<backstage>
<tab
id
=
"tab1"
label
=
"Onglet Perso"
>
<firstColumn>
<group
id
=
"group1"
>
<bottomItems>
<comboBox
id
=
"comboBox1"
label
=
"Liste déroulante"
getText
=
"clbckgetText"
>
<item
id
=
"item1"
label
=
"Ligne 1"
/>
<item
id
=
"item2"
label
=
"Ligne 2"
/>
<item
id
=
"item3"
label
=
"Ligne 3"
/>
</comboBox>
</bottomItems>
</group>
</firstColumn>
</tab>
</backstage>
</customUI>
Code VBA :
Sub
clbckgetText
(
control As
IRibbonControl, ByRef
text)
Select
Case
control.id
Case
"comboBox1"
text =
"Saisie"
End
Select
End
Sub
X-17. getItemCount▲
Nom du Ruban : rubCombo
Cette fonction permet de définir le nombre d'objets à afficher dans la liste déroulante.
Voici le code XML :
<comboBox
id
=
"comboBox1"
label
=
"Liste déroulante"
getItemCount
=
"clbckgetItemCount"
>
Code VBA :
Sub
clbckgetItemCount
(
control As
IRibbonControl, ByRef
itemcount)
Select
Case
control.id
Case
"comboBox1"
itemcount =
3
End
Select
End
Sub
X-18. getItemiD▲
Nom du Ruban : rubCombo
Cette fonction permet de définir l'ID d'un élément spécifique dans le contrôle.
<comboBox
id
=
"comboBox1"
label
=
"Liste déroulante"
getItemCount
=
"clbckgetItemCount"
getItemID
=
"clbckGetItemID"
>
Code VBA :
Sub
clbckgetItemiD
(
control As
IRibbonControl, index As
Integer
, ByRef
id)
Select
Case
control.id
Case
"comboBox1"
id =
"item"
&
index +
1
End
Select
End
Sub
X-19. getItemLabel▲
Nom du Ruban : rubCombo
Cette fonction permet de définir le texte qui s'affichera pour un élément spécifique de la liste.
<comboBox
id
=
"comboBox1"
label
=
"Liste déroulante"
getItemCount
=
"clbckgetItemCount"
getItemID
=
"clbckGetItemID"
getItemLabel
=
"clbckGetItemLabel"
>
Code VBA :
Sub
clbckGetItemLabel
(
control As
IRibbonControl, index As
Integer
, ByRef
label)
Select
Case
control.id
Case
"comboBox1"
label =
"Liste "
&
index +
1
End
Select
End
Sub
X-20. getSelectedItemIndex▲
Nom du Ruban : rubCombo
Cette fonction permet de définir l'index de l'élément selectionné.
<comboBox
id
=
"comboBox1"
label
=
"Liste déroulante"
getItemCount
=
"clbckgetItemCount"
getItemID
=
"clbckGetItemID"
getItemLabel
=
"clbckGetItemLabel"
>
Code VBA : (ici l'élément ayant pour index 2 sera défini par défaut).
Sub
clbckGetSelectedItemIndex
(
control As
IRibbonControl, ByRef
index)
Select
Case
control.id
Case
"comboBox1"
index =
2
End
Select
End
Sub
X-21. getTarget▲
Nom du Ruban : rubLien
Cette fonction permet de définir le chemin du lien hypertexte.
<hyperlink
id
=
"hypLien1"
label
=
"http://dolphy35.developpez.com/"
getTarget
=
"clbckGetTarget"
/>
Code VBA : (ici l'élément ayant pour index 2 sera défini par défaut).
Sub
clbckGetTarget
(
control As
IRibbonControl, ByRef
target)
Select
Case
control.id
Case
"hypLien1"
target =
"http://dolphy35.developpez.com/"
End
Select
End
Sub
X-22. getAltText▲
Nom du Ruban : rubAltTexte
Cette fonction permet de définir le texte alternatif du contrôle.
<imageControl
id
=
"imageControl1"
image
=
"dolphy.bmp"
getAltText
=
"clbckGetAltText"
/>
Code VBA :
Sub
clbckGetAltText
(
control As
IRibbonControl, ByRef
alText)
Select
Case
control.id
Case
"imageControl1"
alText =
"Image de Dolphy"
End
Select
End
Sub