Exemplarische Vorgehensweise: Erstellen eines Smarttags mit einem Add-In auf Anwendungsebene
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-Dokument und stellt eine Aktion bereit, um die Menge in Ounces umzurechnen. Die entsprechende Ouncesmenge wird in Klammern nach der Esslöffelmenge hinzugefügt.
Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Anwendungsebene für Word 2007. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.
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.
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
Zunächst muss ein Add-In-Projekt für Word erstellt werden.
So erstellen Sie ein neues Projekt
Erstellen Sie mit Visual Basic oder C# ein Add-In-Projekt für Word 2007 mit dem Namen "My Recipe Smart Tag".
Weitere Informationen hierzu finden Sie unter Gewusst wie: Erstellen von Office-Projekten in Visual Studio.
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
Klicken Sie im Menü Projekt auf Verweis hinzufügen.
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.
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.
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
Ersetzen Sie den ThisAddIn_Startup-Ereignishandler in der ThisAddIn-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 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"));
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 };
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 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 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
Aktivieren Sie in Word Smarttags.
Weitere Informationen finden Sie unter Gewusst wie: Aktivieren von Smarttags in Word und Excel.
Drücken Sie F5, um das Projekt auszuführen.
Geben Sie im Word-Dokument 1 tablespoon salt ein.
Klicken Sie auf das Smarttagsymbol, das über 1 tablespoon angezeigt wird, und klicken Sie dann auf Convert to ounces.
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
Exemplarische Vorgehensweise: Erstellen eines Smarttags mit einer Anpassung auf Dokumentebene