Procédure pas à pas : création d'une balise active à l'aide d'un complément d'application
Mise à jour : Juillet 2008
S'applique à |
---|
Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et versions de Microsoft Office spécifiés. Type de projet
Version de Microsoft Office
Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet. |
Cette procédure pas à pas montre comment créer une balise active d'application que vous pouvez utiliser dans tout document ouvert. La balise active reconnaît des quantités exprimées en cuillères à soupe dans un document Microsoft Office Word 2007 et fournit une action qui les convertit en onces. Elle ajoute la quantité équivalente en onces entre parenthèses après la quantité en cuillères à soupe.
Pour exécuter la balise active, les utilisateurs finals doivent activer les balises actives dans Word. Pour plus d'informations, consultez Comment : activer des balises actives dans Word et Excel.
Cette procédure pas à pas décrit les tâches suivantes :
Création d'une balise active qui utilise une expression régulière pour identifier des chaînes
Création d'une action qui récupère les données de la balise active et modifie le texte reconnu de la balise active.
Remarque : |
---|
Il se peut que votre ordinateur affiche des noms ou des emplacements différents pour certains éléments de l'interface utilisateur Visual Studio mentionnés dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d'informations, consultez Paramètres Visual Studio. |
Composants requis
Pour exécuter cette procédure pas à pas, vous devez :
Visual Studio Tools pour Office (un composant facultatif de Visual Studio 2008 Professional et Visual Studio Team System).
Microsoft Office Word 2007.
Visual Studio Tools pour Office est installé par défaut avec les versions répertoriées de Visual Studio. Pour vérifier s'il est installé, consultez Installation de Visual Studio Tools pour Office.
Création d'un projet
La première étape consiste à créer un projet de complément Word.
Pour créer un projet
Créez un projet de complément Word et attribuez-lui le nom Ma balise active Recettes, en utilisant Visual Basic ou C#.
Pour plus d'informations, consultez Comment : créer des projets Visual Studio Tools pour Office.
Visual Studio ajoute le projet Ma balise active Recettes à l'Explorateur de solutions.
Configuration du projet
Le projet a besoin d'une référence à la DLL de balise active et doit également utiliser des expressions régulières.
Pour configurer votre projet
Dans le menu Projet, cliquez sur Ajouter une référence.
Sous l'onglet COM, sélectionnez Bibliothèque de types Microsoft Smart Tags 2.0, puis cliquez sur OK.
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur ThisDocument.vb (en Visual Basic) ou ThisDocument.cs (en C#), puis cliquez sur Afficher le code.
Ajoutez la ligne de code suivante au début du fichier.
Imports System.Text.RegularExpressions
using System.Text.RegularExpressions;
Création de la balise active
Pour permettre à la balise active de rechercher et de convertir les quantités mesurées en cuillères à soupe, ajoutez une expression régulière à la liste des termes que la balise active reconnaît, puis créez une action qui sera disponible lorsque l'utilisateur clique sur la balise active.
Pour créer la balise active
Remplacer le gestionnaire d'événements ThisAddIn_Startup de la classe ThisAddIn par le code suivant. Ce code crée un SmartTag qui représente la balise active Visual Studio Tools pour Office et ajoute une expression régulière à la liste des termes que la balise active reconnaît.
WithEvents RecipeAction As Microsoft.Office.Tools.Word.Action Private Sub ThisAddIn_Startup(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.Startup Dim SmartTagDemo As New Microsoft.Office.Tools.Word.SmartTag( _ "www.microsoft.com/Demo#DemoSmartTag", "Recipe Smart Tag") SmartTagDemo.Expressions.Add(New Regex( _ "(?'tbsNumber'[+-]?\b[0-9]+)?\s?(tbs|tablespoons|tablespoon)\b"))
private Microsoft.Office.Tools.Word.Action RecipeAction; private void ThisAddIn_Startup(object sender, System.EventArgs e) { Microsoft.Office.Tools.Word.SmartTag SmartTagDemo = new Microsoft.Office.Tools.Word.SmartTag( @"www.microsoft.com/Demo#DemoSmartTag", @"Recipe Smart Tag"); // Specify the terms to recognize. SmartTagDemo.Expressions.Add(new Regex( @"(?'tbsNumber'[+-]?\b[0-9]+)?\s?(tbs|tablespoons|tablespoon)\b"));
Créez un nouveau Action, puis ajoutez-le à la propriété Actions de la balise active. Action représente un élément sur lequel l'utilisateur peut cliquer dans le menu Balise active.
RecipeAction = New Microsoft.Office.Tools.Word.Action("Convert to ounces") SmartTagDemo.Actions = _ New Microsoft.Office.Tools.Word.Action() {RecipeAction}
RecipeAction = new Microsoft.Office.Tools.Word.Action( @"Convert to ounces"); // Add the action to the smart tag. SmartTagDemo.Actions = new Microsoft.Office.Tools.Word.Action[] { RecipeAction };
Attachez la balise active à la propriété VstoSmartTags de la classe ThisAddIn. En C#, attachez un gestionnaire d'événements à l'événement Click de l'action.
Me.VstoSmartTags.Add(SmartTagDemo) End Sub
// Add the smart tag to the document. this.VstoSmartTags.Add(SmartTagDemo); RecipeAction.Click += new Microsoft.Office.Tools.Word.ActionClickEventHandler( RecipeAction_Click); }
Création d'un gestionnaire d'événements pour l'action
Le gestionnaire d'événements récupère la valeur en cuillères à soupe de la clé tbsNumber, qui se trouve dans le sac de propriétés de la balise active. Le gestionnaire d'événements convertit ensuite la quantité de cuillères à soupe en onces et insère la valeur en onces entre parenthèses après la valeur en cuillères à soupe.
Dans cet exemple, la clé tbsNumber identifie un groupe capturé à partir de l'expression régulière assignée à la balise active. Pour plus d'informations sur les conteneurs de propriétés et les expressions régulières dans les balises actives Visual Studio Tools pour Office, consultez Architecture des balises actives.
Pour créer le gestionnaire d'événements
Copiez le code suivant dans la classe ThisAddIn.
Private Sub RecipeAction_Click(ByVal sender As Object, _ ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _ Handles RecipeAction.Click Dim value As String = e.Properties.Read("tbsNumber") Dim tbsRecipeAmount As Double = System.Convert.ToDouble(value) Dim ozRecipeAmount As Double = tbsRecipeAmount * 0.5 e.Range.InsertAfter(" (" + ozRecipeAmount.ToString() + " oz)") End Sub
private void RecipeAction_Click(object sender, Microsoft.Office.Tools.Word.ActionEventArgs e) { string value = e.Properties.get_Read(@"tbsNumber"); double tbsRecipeAmount = System.Convert.ToDouble(value); double ozRecipeAmount = tbsRecipeAmount * 0.5; e.Range.InsertAfter(" (" + ozRecipeAmount.ToString() + " oz)"); }
Test de l'application
Vous pouvez à présent tester votre document pour vérifier que la balise active convertit en onces les quantités mesurées en cuillères à soupe.
Pour tester votre classeur
Dans Word, activez les balises actives.
Pour plus d'informations, consultez Comment : activer des balises actives dans Word et Excel.
Appuyez sur F5 pour exécuter votre projet.
Tapez une recette avec des quantités d'ingrédients mesurées en cuillères à soupe.
Cliquez sur l'icône de balise active qui s'affiche au-dessus de la chaîne reconnue, puis cliquez sur Convert to ounces.
Assurez-vous que l'équivalent en onces est inséré après la quantité en cuillères à soupe.
Voir aussi
Tâches
Comment : activer des balises actives dans Word et Excel
Comment : ajouter des balises actives à des documents Word
Comment : ajouter des balises actives aux classeurs Excel
Comment : créer des balises actives avec des modules de reconnaissance personnalisés dans Word
Comment : créer des balises actives avec des modules de reconnaissance personnalisés dans Excel
Concepts
Vue d'ensemble des balises actives
Architecture des balises actives
Historique des modifications
Date |
Historique |
Raison |
---|---|---|
Juillet 2008 |
Rubrique ajoutée. |
Modifications de fonctionnalités dans le SP1. |