Exemplarische Vorgehensweise: Erstellen eines Smarttags mit einer Anpassung auf Dokumentebene

Diese exemplarische Vorgehensweise veranschaulicht, wie ein Smarttag in einer Anpassung auf Dokumentebene für Word erstellt wird. Das Smarttag erkennt Fahrenheit-Temperaturzeichenfolgen. Das Smarttag enthält eine Aktion, die den Temperaturwert in Celsius umrechnet und den erkannten Text durch eine formatierte Celsius-Temperaturzeichenfolge ersetzt.

Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokumentebene für Word 2007. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.

Um dieses 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 erkennt.

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

Tipp

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 von Ihnen verwendete Visual Studio-Edition und die Einstellungen legen diese Elemente fest. Weitere Informationen finden Sie unter Arbeiten mit Einstellungen.

Vorbereitungsmaßnahmen

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

-

Eine Version von Visual Studio 2010, die die Microsoft Office-Entwicklungstools einschließt. Weitere Informationen finden Sie unter [Konfigurieren eines Computers zum Entwickeln von Office-Lösungen](bb398242\(v=vs.100\).md).
  • Word 2007

  • .NET Framework 3.5

Tipp

Wenn Sie auf .NET Framework 4 abzielen, müssen Sie anderen Code verfassen, um Smarttags und Aktionen zu erstellen. Weitere Informationen finden Sie unter Smarttagarchitektur.

Erstellen eines neuen Projekts

Der erste Schritt besteht darin, ein Word-Dokumentprojekt zu erstellen.

So erstellen Sie ein neues Projekt

Visual Studio öffnet das neue Word-Dokument im Designer und fügt dem Projektmappen-Explorer das My Smart Tag-Projekt 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 Microsoft.Office.Interop.SmartTag auf der Registerkarte .NET aus, und klicken Sie auf OK. Wählen Sie die 12.0.0.0-Version der Assembly aus.

  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 Fahrenheit-Temperaturzeichenfolgen finden und konvertieren 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 ThisDocument_Startup-Ereignishandler in der ThisDocument-Klasse durch folgenden Code. Durch diesen Code wird ein SmartTag erstellt, das das Smarttag darstellt. Außerdem wird der Liste der Begriffe, die das Smarttag erkennt, ein regulärer Ausdruck hinzugefügt.

    WithEvents action1 As Microsoft.Office.Tools.Word.Action
    
    Private Sub ThisDocument_Startup(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles Me.Startup
    
        'Use the following line of code in projects that target the .NET Framework 4.
        Dim smartTag1 As Microsoft.Office.Tools.Word.SmartTag = _
            Globals.Factory.CreateSmartTag( _
           "www.microsoft.com/Demo#DemoSmartTag", _
           "Demonstration Smart Tag")
    
        'In projects that target the .NET Framework 3.5, use the following line of code.
        'Dim smartTag1 As New Microsoft.Office.Tools.Word.SmartTag( _
        '   "www.microsoft.com/Demo#DemoSmartTag", _
        '  "Demonstration Smart Tag")
    
        smartTag1.Expressions.Add( _
            New Regex("(?'number'[+-]?\b[0-9]+)?\s?(F|f)\b"))
    
    private Microsoft.Office.Tools.Word.Action action1;
    
    private void ThisDocument_Startup(object sender, System.EventArgs e)
    {
        // Use the following line of code in projects that target the .NET Framework 4.
        Microsoft.Office.Tools.Word.SmartTag smartTag1 =
            Globals.Factory.CreateSmartTag(
            "www.microsoft.com/Demo#DemoSmartTag",
            "Demonstration Smart Tag");
    
        // In projects that target the .NET Framework 3.5, use the following line of code.
        //Microsoft.Office.Tools.Word.SmartTag smartTag1 =
        //  new Microsoft.Office.Tools.Word.SmartTag(
        //  "www.microsoft.com/Demo#DemoSmartTag",
        //  "Demonstration Smart Tag");
    
        smartTag1.Expressions.Add(new Regex(
            @"(?'number'[+-]?\b[0-9]+)�?\s?(F|f)\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.

    'Use the following line of code in projects that target the .NET Framework 4.
    action1 = Globals.Factory.CreateAction( _
        "Convert to Celsius")
    
    'In projects that target the .NET Framework 3.5, use the following line of code.
    'action1 = New Microsoft.Office.Tools.Word.Action( _
    '    "Convert to Celsius")
    
    smartTag1.Actions = _
        New Microsoft.Office.Tools.Word.Action() {action1}
    
    
    // Use the following line of code in projects that target the .NET Framework 4.
    action1 = Globals.Factory.CreateAction(
        "Convert to Celsius");
    
    // In projects that target the .NET Framework 3.5, use the following line of code.
    //action1 = new Microsoft.Office.Tools.Word.Action(
    //    "Convert to Celsius");
    
    
    
    smartTag1.Actions = new
        Microsoft.Office.Tools.Word.Action[] {action1};
    
  3. Fügen Sie das Smarttag an das Dokument an, indem Sie das SmartTag der VstoSmartTags-Eigenschaft hinzufügen. Fügen Sie in C# einen Ereignishandler an das Click-Ereignis der Aktion an.

        Me.VstoSmartTags.Add(smartTag1)
    End Sub
    
        this.VstoSmartTags.Add(smartTag1);
    
        action1.Click += new
            Microsoft.Office.Tools.Word.ActionClickEventHandler(
            action1_Click);
    }
    

Erstellen eines Ereignishandlers für die Aktion

Der Ereignishandler ruft über den Schlüssel number, der sich in der Eigenschaftensammlung des Smarttags befindet, den Fahrenheit-Temperaturwert ab. Der Ereignishandler wandelt dann den Fahrenheit-Temperaturwert in Celsius um und ersetzt die erkannte Zeichenfolge.

Der Schlüssel number identifiziert in diesem Beispiel eine Erfassungsgruppe, die anhand des regulären Ausdrucks erfasst wird, der dem Smarttag zugewiesen ist. Weitere Informationen über Eigenschaftensammlungen und reguläre Ausdrücke in Smarttags finden Sie unter Smarttagarchitektur.

So erstellen Sie den Ereignishandler

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

    Private Sub action1_Click(ByVal sender As Object, _
        ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
        Handles action1.Click
    
        Dim value As String = e.Properties.Read("number")
        Dim fahrenheit As Double = System.Convert.ToDouble(value)
        Dim celsius As Integer = Fix(fahrenheit - 32) * 5 / 9
        e.Range.Text = celsius.ToString() + "C"
    End Sub
    
    void action1_Click(object sender,
        Microsoft.Office.Tools.Word.ActionEventArgs e)
    {
        string value = e.Properties.get_Read("number");
        double fahrenheit = System.Convert.ToDouble(value);
        int celsius = (int)(fahrenheit - 32) * 5 / 9;
        e.Range.Text = celsius.ToString() + "�C";
    }
    

Testen der Anwendung

Nun können Sie das Dokument testen, um sicherzustellen, dass das Smarttag Fahrenheit-Temperaturen in Celsius umwandelt.

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 eine Zeichenfolge ein, die dem regulären Ausdruck entspricht, den Sie dem Smarttag hinzugefügt haben, z. B. 60F, 60° F oder 60 F.

    Tipp

    Für ein Gradsymbol (°) geben Sie bei gedrückter ALT-TASTE 248 ein.

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

  5. Überzeugen Sie sich davon, dass die ursprüngliche Zeichenfolge durch eine neue Zeichenfolge ersetzt wurde, die die Temperatur in Celsius enthält.

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 und .NET Framework 3.5

Gewusst wie: Erstellen von Smarttags mit benutzerdefinierten Erkennungen in Excel und .NET Framework 3.5

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

Konzepte

Smarttagarchitektur

Weitere Ressourcen

Übersicht über Smarttags