Exemplarische Vorgehensweise: Erstellen eines Smarttags mit einem Add-In auf Anwendungsebene

Aktualisiert: Juli 2008

Betrifft

Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office.

Projekttyp

  • Projekte auf Anwendungsebene

Microsoft Office-Version

  • Word 2007

Weitere Informationen hierzu finden Sie unter Verfügbare Features nach Anwendung und Projekttyp.

In dieser exemplarischen Vorgehensweise wird veranschaulicht, wie ein Smarttag auf Anwendungsebene erstellt wird, das Sie in jedem geöffneten Dokument verwenden können. Das Smarttag erkennt Esslöffelmaße in einem Microsoft Office Word 2007-Dokument und stellt eine Aktion bereit, um die Menge in Ounces umzurechnen. Die entsprechende Ouncesmenge wird in Klammern nach der Esslöffelmenge hinzugefügt.

Um das Smarttag auszuführen, müssen Endbenutzer das Smarttag in Word aktivieren. Weitere Informationen hierzu finden Sie unter Gewusst wie: Aktivieren von Smarttags in Word und Excel.

In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:

  • Erstellen eines Smarttags, das einen regulären Ausdruck zum Erkennen von Zeichenfolgen verwendet.

  • Erstellen einer Aktion, die Daten vom Smarttag abruft und den erkannten Smarttagtext ändert.

Hinweis:

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Die Elemente werden durch die verwendete Ausgabe von Visual Studio und die gewählten Einstellungen bestimmt. Weitere Informationen hierzu finden Sie unter Visual Studio-Einstellungen.

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

  • Visual Studio Tools for Office (eine optionale Komponente von Visual Studio 2008 Professional und Visual Studio Team System).

  • Microsoft Office Word 2007.

Visual Studio Tools for Office wird standardmäßig mit den aufgeführten Versionen von Visual Studio installiert. Wie Sie überprüfen können, ob die Software installiert ist, erfahren Sie in Installieren von Visual Studio Tools for Office.

Erstellen eines neuen Projekts

Zunächst muss ein Add-In-Projekt für Word erstellt werden.

So erstellen Sie ein neues Projekt

Visual Studio fügt das My Recipe Smart Tag-Projekt dem Projektmappen-Explorer hinzu.

Konfigurieren des Projekts

Das Projekt benötigt einen Verweis auf die Smarttag-DLL und muss auch reguläre Ausdrücke verwenden.

So konfigurieren Sie das Projekt

  1. Klicken Sie im Menü Projekt auf Verweis hinzufügen.

  2. Wählen Sie auf der Registerkarte COM die Option Microsoft Smart Tags 2.0-Typbibliothek aus, und klicken Sie auf OK.

  3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf ThisDocument.vb (Visual Basic) bzw. ThisDocument.cs (C#), und klicken Sie dann auf Code anzeigen.

  4. Fügen Sie am Anfang der Datei die folgende Codezeile ein.

    Imports System.Text.RegularExpressions
    
    using System.Text.RegularExpressions;
    

Erstellen des Smarttags

Damit das Smarttag Esslöffelmaße finden und umrechnen kann, fügen Sie der Liste der Begriffe, die das Smarttag erkennt, einen regulären Ausdruck hinzu, und erstellen Sie eine Aktion, die ausgeführt werden kann, wenn der Benutzer auf das Smarttag klickt.

So erstellen Sie das Smarttag

  1. Ersetzen Sie den ThisAddIn_Startup-Ereignishandler in der ThisAddIn-Klasse durch folgenden Code. Durch diesen Code wird ein SmartTag erstellt, das das Visual Studio Tools for Office-Smarttag darstellt. Außerdem wird der Liste der Begriffe, die das Smarttag erkennt, ein regulärer Ausdruck hinzugefügt.

    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"));
    
    
  2. Erstellen Sie eine neue Action und fügen Sie sie der Actions-Eigenschaft des Smarttags hinzu. Die Action stellt ein Element im Smarttagmenü dar, auf das der Benutzer klicken kann.

    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 };
    
    
  3. Fügen Sie das Smarttag der VstoSmartTags-Eigenschaft der ThisAddIn-Klasse hinzu. Fügen Sie in C# einen Ereignishandler an das Click-Ereignis der Aktion an.

        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);
    }
    
    

Erstellen eines Ereignishandlers für die Aktion

Der Ereignishandler ruft über den Schlüssel tbsNumber, der sich in der Eigenschaftensammlung des Smarttags befindet, den Esslöffelwert ab. Der Ereignishandler rechnet dann die Esslöffelmenge in Ounces um und fügt den Ounceswert in Klammern nach dem Esslöffelwert ein.

Der Schlüssel tbsNumber identifiziert in diesem Beispiel eine Gruppe, die anhand des regulären Ausdrucks erfasst wird, der dem Smarttag zugewiesen ist. Weitere Informationen über Eigenschaftensammlungen und reguläre Ausdrücke in Visual Studio Tools for Office-Smarttags finden Sie unter Smarttagarchitektur.

So erstellen Sie den Ereignishandler

  • Kopieren Sie den folgenden Code in die ThisAddIn-Klasse.

    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)");
    }
    

Testen der Anwendung

Nun können Sie das Dokument testen, um zu überprüfen, ob das Smarttag Esslöffelmaße in Ounces umgerechnet hat.

So testen Sie die Arbeitsmappe

  1. Aktivieren Sie in Word Smarttags.

    Weitere Informationen hierzu finden Sie unter Gewusst wie: Aktivieren von Smarttags in Word und Excel.

  2. Drücken Sie F5, um das Projekt auszuführen.

  3. Geben Sie ein Rezept mit Zutatenmengen in Esslöffeleinheiten ein.

  4. Klicken Sie auf das Smarttagsymbol, das über der erkannten Zeichenfolge angezeigt wird, und klicken Sie dann auf Convert to ounces.

  5. Bestätigen Sie, dass die entsprechende Mengenangabe in Ounces nach der Mengenangabe in Esslöffeln eingefügt wird.

Siehe auch

Aufgaben

Gewusst wie: Aktivieren von Smarttags in Word und Excel

Gewusst wie: Hinzufügen von Smarttags zu Word-Dokumenten

Gewusst wie: Hinzufügen von Smarttags zu Excel-Arbeitsmappen

Gewusst wie: Erstellen von Smarttags mit benutzerdefinierten Erkennungen in Word

Gewusst wie: Erstellen von Smarttags mit benutzerdefinierten Erkennungen in Excel

Exemplarische Vorgehensweise: Erstellen eines Smarttags mit einer Anpassung auf Dokumentebene

Konzepte

Übersicht über Smarttags

Smarttagarchitektur

Änderungsverlauf

Date

Versionsgeschichte

Grund

Juli 2008

Zusätzliches Thema.

SP1-Featureänderung.