Cet article a pour but de vous présenter comment créer rapidement un complément à Microsoft Office 2007 qui viendra s’ajouter dans le ruban. Nous allons donc créer un projet de type Complément Excel 2007 dans Visual Studio 2008. Il est possible de créer des compléments pour InfoPath, PowerPoint, Visio, Excel, Outlook, Project et Word.

Vous devriez obtenir une classe nommée ThisAddIn qui contient deux méthodes :
private void ThisAddIn_Startup(object sender, System.EventArgs e)
Celle-ci est appelée au démarrage du complément. C’est ici que vous pouvez initialiser vos variables par exemple, qui seront utilisées lors de l’utilisation des fonctionnalités du complément.
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
Cette méthode est appelée à la fermeture du complément. Vous procéderez ici à la libération de la mémoire utilisée par votre complément.
Nous allons créer un ruban personnalisé. Pour cela, deux méthodes. La première est d’utiliser le concepteur visuel en ajoutant un nouvel élément de type Ruban (Concepteur visuel) :

Je personnalise un peu le ruban avec le thème du rugby :

Tout fonctionne exactement comme en Winform, à savoir que si vous double cliquez sur un bouton, Toulouse par exemple, vous allez obtenir la méthode d’abonnement à l’événement Click du bouton btToulouse :
private void btToulouse_Click(object sender, RibbonControlEventArgs e)
Il ne reste plus qu’à développer votre application derrière. Si on lance la compilation et l’exécution du complément, Excel 2007 se lance et nous obtenons bien le nouveau complément :

Pour utiliser les images d’Office comme ce que j’ai fait sur l’image ci-dessus, télécharger le fichier : http://www.microsoft.com/downloads/details.aspx?familyid=4329D9E9-4D11-46A5-898D-23E4F331E9AE&displaylang=en puis récupérer les ID des boutons que vous souhaitez récupérer, et définissez le code à la propriété OfficeImageId de votre bouton :

Maintenant, essayons la même chose avec le Ruban (XML) mais sur le thème du foot. On ajoute un nouvel élément de type Ruban (XML). Attention, vous n’allez pas pouvoir combiner le Ruban XML avec le Ruban (Concepteur visuel) que nous avons créé plus tôt, dans le même complément.

La première chose à faire est d’ajouter la méthode suivante à la classe ThisAddIn :
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
return new RibbonXML();
}
Cette méthode nous permettra de définir le ruban qui sera chargé à savoir pour mon cas RibbonXML. Passons maintenant à la personnalisation du Ruban (XML) :
<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Ribbon_Load">
<ribbon>
<tabs>
<tab idMso="TabAddIns" label="Foot">
<group id="groupL1" label="L1">
<button id="btLyon" label="Lyon" size="large" imageMso="ChartTypeLineInsertGallery" />
<button id="btBordeaux" label="Bordeaux" size="large" imageMso="ChartTypeLineInsertGallery" />
</group>
<group id="groupL2" label="L2">
<button id="btCaen" label="Caen" size="large" imageMso="ChartTypeLineInsertGallery" />
<button id="btClermont" label="Clermont" size="large" imageMso="ChartTypeLineInsertGallery" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Ce qui nous donne le résultat suivant :

Pour s’abonner à l’événement Click d’un bouton, la procédure est différente, en effet nous n’avons pas d’interface graphique pour faire comme précédemment. Il n’y a pas non plus d’événements dans la liste des possibilités d’attribut XML comme nous aurions dans un code XAML (WPF). Nous allons donc utiliser l’attribut onAction pour y spécifier le nom de la méthode que nous allons écrire juste après.

Nous allons écrire la méthode qui sera appelée lorsque l’utilisateur cliquera sur le bouton :
public void btBordeaux_Click(Office.IRibbonControl control)
{
MessageBox.Show("Bordeaux sera champion de France");
}
Il vous faudra écrire cette méthode sans aucune assistance de la part de Visual Studio pour la signature de celle-ci, attention donc à ne pas faire d’erreur.