Gewusst wie: Hinzufügen von Smarttags zu Word-Dokumenten
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. Projekte auf Dokumentebene
Projekte auf Anwendungsebene
Weitere Informationen hierzu finden Sie unter Verfügbare Features nach Anwendung und Projekttyp. |
Sie können Smarttags für Microsoft Office Word-Dokumente hinzufügen, um Text zu erkennen und Benutzern Zugriff auf Aktionen zu gewähren, die mit den erkannten Begriffen verknüpft sind.
Ab Visual Studio 2008 Service Pack 1 (SP1) können Sie Add-Ins auf Anwendungsebene verwenden, um einem beliebigen geöffneten Dokument Smarttags hinzuzufügen. Der Code, den Sie zum Erstellen und Konfigurieren eines Smarttags schreiben, ist für Projekte auf Dokumentebene und Projekte auf Anwendungsebene gleich. Allerdings gibt es einige Unterschiede bei der Verknüpfung eines Smarttags mit Dokumenten. Smarttags haben in Projekten auf Dokumentebene und in Projekten auf Anwendungsebene auch einen unterschiedlichen Gültigkeitsbereich.
In diesem Thema werden die folgenden Aufgaben erläutert:
Hinzufügen eines Smarttags mit einer Anpassung auf Dokumentebene
Hinzufügen eines Smarttags mit einem Add-In auf Anwendungsebene
Wenn Endbenutzer ein Smarttag ausführen möchten, müssen Smarttags in Word oder Excel aktiviert sein. Weitere Informationen hierzu finden Sie unter Gewusst wie: Aktivieren von Smarttags in Word und Excel.
Hinzufügen eines Smarttags mit einer Anpassung auf Dokumentebene
Smarttags in Anpassungen auf Dokumentebene werden nur in dem Dokument erkannt, das der Anpassung zugeordnet ist.
So fügen Sie ein Smarttag mit einer Anpassung auf Dokumentebene hinzu
Erstellen Sie ein SmartTag-Objekt, und konfigurieren Sie dieses Objekt, um das Verhalten des Smarttags zu definieren:
Um den Text anzugeben, der erkannt werden soll, verwenden Sie die Terms-Eigenschaft oder die Expressions-Eigenschaft.
Um die Aktionen im Smarttag zu definieren, auf die der Benutzer klicken kann, fügen Sie ein oder mehrere Action-Objekte der Actions-Eigenschaft hinzu.
Weitere Informationen hierzu finden Sie unter Smarttagarchitektur.
Fügen Sie das SmartTag der VstoSmartTags-Eigenschaft der ThisDocument-Klasse hinzu.
Im folgenden Codebeispiel wird ein Smarttag erstellt, das die Wörter term und recognize erkennt. Wenn der Benutzer auf das Smarttag klickt, werden die Positionen von Anfangs- und Endzeichen des erkannten Worts angezeigt. Um diesen Code auszuführen, fügen Sie den Code der ThisDocument-Klasse hinzu, und rufen Sie die AddSmartTag-Methode des ThisDocument_Startup-Ereignishandlers auf.
Private WithEvents displayAddress As Microsoft.Office.Tools.Word.Action
Private Sub AddSmartTag()
Dim smartTagDemo As New _
Microsoft.Office.Tools.Word.SmartTag( _
"www.microsoft.com/Demo#DemoSmartTag", _
"Demonstration Smart Tag")
' Specify the terms to recognize.
smartTagDemo.Terms.Add("term")
smartTagDemo.Terms.Add("recognize")
' Create the action.
displayAddress = New Microsoft.Office.Tools.Word.Action("To be replaced")
' Add the action to the smart tag.
smartTagDemo.Actions = New Microsoft.Office.Tools.Word.Action() { _
displayAddress}
' Add the smart tag.
Me.VstoSmartTags.Add(smartTagDemo)
End Sub
Private Sub OpenMessageBox_BeforeCaptionShow(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
Handles DisplayAddress.BeforeCaptionShow
Dim clickedAction As Microsoft.Office.Tools.Word.Action = _
TryCast(sender, Microsoft.Office.Tools.Word.Action)
If clickedAction IsNot Nothing Then
clickedAction.Caption = "Display the location of " & e.Text
End If
End Sub
Private Sub DisplayAddress_Click(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
Handles DisplayAddress.Click
Dim termStart As Integer = e.Range.Start
Dim termEnd As Integer = e.Range.End
MsgBox("The recognized text '" & e.Text & _
"' begins at position " & termStart & _
" and ends at position " & termEnd)
End Sub
private Microsoft.Office.Tools.Word.Action displayAddress;
private void AddSmartTag()
{
Microsoft.Office.Tools.Word.SmartTag smartTagDemo =
new Microsoft.Office.Tools.Word.SmartTag(
"www.microsoft.com/Demo#DemoSmartTag",
"Demonstration Smart Tag");
// Specify the terms to recognize.
smartTagDemo.Terms.Add("term");
smartTagDemo.Terms.Add("recognize");
// Create the action.
displayAddress = new Microsoft.Office.Tools.Word.Action("To be replaced");
// Add the action to the smart tag.
smartTagDemo.Actions = new Microsoft.Office.Tools.Word.Action[] {
displayAddress };
// Add the smart tag.
this.VstoSmartTags.Add(smartTagDemo);
displayAddress.BeforeCaptionShow += new
Microsoft.Office.Tools.Word.BeforeCaptionShowEventHandler(
displayAddress_BeforeCaptionShow);
displayAddress.Click += new
Microsoft.Office.Tools.Word.ActionClickEventHandler(
displayAddress_Click);
}
void displayAddress_BeforeCaptionShow(object sender,
Microsoft.Office.Tools.Word.ActionEventArgs e)
{
Microsoft.Office.Tools.Word.Action clickedAction =
sender as Microsoft.Office.Tools.Word.Action;
if (clickedAction != null)
{
clickedAction.Caption = "Display the location of " +
e.Text;
}
}
void displayAddress_Click(object sender,
Microsoft.Office.Tools.Word.ActionEventArgs e)
{
int termStart = e.Range.Start;
int termEnd = e.Range.End;
System.Windows.Forms.MessageBox.Show("The recognized text '" + e.Text +
"' begins at position " + termStart.ToString() +
" and ends at position " + termEnd.ToString());
}
Hinzufügen eines Smarttags mit einem Add-In auf Anwendungsebene
Ab SP1 können Sie ein Smarttag mit einem Add-In auf Anwendungsebene hinzufügen. Sie können festlegen, ob das Smarttag nur in einem bestimmten Dokument oder in allen geöffneten Dokumenten (dies wird auch als Smarttag auf Anwendungsebene bezeichnet) funktionieren soll.
So fügen Sie ein Smarttag einem bestimmten Dokument hinzu
Erstellen Sie ein SmartTag-Objekt, und konfigurieren Sie dieses Objekt, um das Verhalten des Smarttags zu definieren:
Um den Text anzugeben, der erkannt werden soll, verwenden Sie die Terms-Eigenschaft oder die Expressions-Eigenschaft.
Um die Aktionen im Smarttag zu definieren, auf die der Benutzer klicken kann, fügen Sie ein oder mehrere Action-Objekte der Actions-Eigenschaft hinzu.
Weitere Informationen hierzu finden Sie unter Smarttagarchitektur.
Verwenden Sie die GetVstoObject-Methode, um ein Document-Hostelement für das Dokument zu erstellen, das das Smarttag hosten soll. Weitere Informationen zum Erstellen von Hostelementen finden Sie unter Erweitern von Word-Dokumenten und Excel-Arbeitsmappen in Add-Ins auf Anwendungsebene zur Laufzeit.
Hinweis: Wenn Sie ein Projekt verwenden, das Sie vor der Installation von SP1 erstellt haben, müssen Sie das Projekt ändern, bevor Sie die GetVstoObject-Methode verwenden können. Weitere Informationen hierzu finden Sie unter Erweitern von Word-Dokumenten und Excel-Arbeitsmappen in Add-Ins auf Anwendungsebene zur Laufzeit.
Fügen Sie das SmartTag der VstoSmartTags-Eigenschaft des Document hinzu.
Im folgenden Codebeispiel wird ein Smarttag im aktiven Dokument erstellt, das die Wörter term und recognize erkennt. Wenn der Benutzer auf das Smarttag klickt, werden die Positionen von Anfangs- und Endzeichen des erkannten Worts angezeigt. Um diesen Code auszuführen, fügen Sie den Code der ThisAddIn-Klasse hinzu, und rufen Sie die AddSmartTagToActiveDocument-Methode des ThisAddIn_Startup-Ereignishandlers auf.
Private WithEvents displayAddress As Microsoft.Office.Tools.Word.Action
Private Sub AddSmartTagToActiveDocument()
Dim smartTagDemo As New _
Microsoft.Office.Tools.Word.SmartTag( _
"www.microsoft.com/Demo#DemoSmartTag", _
"Demonstration Smart Tag")
' Specify the terms to recognize.
smartTagDemo.Terms.Add("term")
smartTagDemo.Terms.Add("recognize")
' Create the action.
displayAddress = New Microsoft.Office.Tools.Word.Action("To be replaced")
' Add the action to the smart tag.
smartTagDemo.Actions = New Microsoft.Office.Tools.Word.Action() { _
displayAddress}
' Get a Document host item, and add the smart tag to the document.
Dim vstoDocument As Microsoft.Office.Tools.Word.Document = _
Me.Application.ActiveDocument.GetVstoObject()
vstoDocument.VstoSmartTags.Add(smartTagDemo)
End Sub
Private Sub OpenMessageBox_BeforeCaptionShow(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
Handles displayAddress.BeforeCaptionShow
Dim clickedAction As Microsoft.Office.Tools.Word.Action = _
TryCast(sender, Microsoft.Office.Tools.Word.Action)
If clickedAction IsNot Nothing Then
clickedAction.Caption = "Display the location of " & e.Text
End If
End Sub
Private Sub DisplayAddress_Click(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
Handles displayAddress.Click
Dim termStart As Integer = e.Range.Start
Dim termEnd As Integer = e.Range.End
MsgBox("The recognized text '" & e.Text & _
"' begins at position " & termStart & _
" and ends at position " & termEnd)
End Sub
private Microsoft.Office.Tools.Word.Action displayAddress;
private void AddSmartTagToActiveDocument()
{
Microsoft.Office.Tools.Word.SmartTag smartTagDemo =
new Microsoft.Office.Tools.Word.SmartTag(
"www.microsoft.com/Demo#DemoSmartTag",
"Demonstration Smart Tag");
// Specify the terms to recognize.
smartTagDemo.Terms.Add("term");
smartTagDemo.Terms.Add("recognize");
// Create the action.
displayAddress = new Microsoft.Office.Tools.Word.Action("To be replaced");
// Add the action to the smart tag.
smartTagDemo.Actions = new Microsoft.Office.Tools.Word.Action[] {
displayAddress };
// Add the smart tag to the document.
Microsoft.Office.Tools.Word.Document vstoDocument =
this.Application.ActiveDocument.GetVstoObject();
vstoDocument.VstoSmartTags.Add(smartTagDemo);
displayAddress.BeforeCaptionShow += new
Microsoft.Office.Tools.Word.BeforeCaptionShowEventHandler(
displayAddress_BeforeCaptionShow);
displayAddress.Click += new
Microsoft.Office.Tools.Word.ActionClickEventHandler(
displayAddress_Click);
}
void displayAddress_BeforeCaptionShow(object sender,
Microsoft.Office.Tools.Word.ActionEventArgs e)
{
Microsoft.Office.Tools.Word.Action clickedAction =
sender as Microsoft.Office.Tools.Word.Action;
if (clickedAction != null)
{
clickedAction.Caption = "Display the location of " +
e.Text;
}
}
void displayAddress_Click(object sender,
Microsoft.Office.Tools.Word.ActionEventArgs e)
{
int termStart = e.Range.Start;
int termEnd = e.Range.End;
System.Windows.Forms.MessageBox.Show("The recognized text '" + e.Text +
"' begins at position " + termStart.ToString() +
" and ends at position " + termEnd.ToString());
}
So fügen Sie ein Smarttag hinzu, das in allen geöffneten Dokumenten funktioniert
Erstellen Sie ein SmartTag-Objekt, und konfigurieren Sie dieses Objekt, um das Verhalten des Smarttags zu definieren:
Um den Text anzugeben, der erkannt werden soll, verwenden Sie die Terms-Eigenschaft oder die Expressions-Eigenschaft.
Um die Aktionen im Smarttag zu definieren, auf die der Benutzer klicken kann, fügen Sie ein oder mehrere Action-Objekte der Actions-Eigenschaft hinzu.
Weitere Informationen hierzu finden Sie unter Smarttagarchitektur.
Fügen Sie das SmartTag der VstoSmartTags-Eigenschaft der ThisAddIn-Klasse hinzu.
Hinweis: Wenn Sie ein Projekt verwenden, das vor der Installation von SP1 erstellt wurde, müssen Sie das Projekt ändern, um die VstoSmartTags-Eigenschaft zu generieren. Weitere Informationen hierzu finden Sie unter Gewusst wie: Hinzufügen von Smarttags auf Anwendungsebene in Projekten, die vor SP1 erstellt wurden.
Im folgenden Codebeispiel wird ein Smarttag erstellt, das die Wörter term und recognize erkennt. Wenn der Benutzer auf das Smarttag klickt, werden die Positionen von Anfangs- und Endzeichen des erkannten Worts angezeigt. Um diesen Code auszuführen, fügen Sie den Code der ThisAddIn-Klasse hinzu, und rufen Sie die AddSmartTag-Methode des ThisAddIn_Startup-Ereignishandlers auf.
Private WithEvents displayAddress As Microsoft.Office.Tools.Word.Action
Private Sub AddSmartTag()
Dim smartTagDemo As New _
Microsoft.Office.Tools.Word.SmartTag( _
"www.microsoft.com/Demo#DemoSmartTag", _
"Demonstration Smart Tag")
' Specify the terms to recognize.
smartTagDemo.Terms.Add("term")
smartTagDemo.Terms.Add("recognize")
' Create the action.
displayAddress = New Microsoft.Office.Tools.Word.Action("To be replaced")
' Add the action to the smart tag.
smartTagDemo.Actions = New Microsoft.Office.Tools.Word.Action() { _
displayAddress}
' Add the smart tag.
Me.VstoSmartTags.Add(smartTagDemo)
End Sub
Private Sub OpenMessageBox_BeforeCaptionShow(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
Handles DisplayAddress.BeforeCaptionShow
Dim clickedAction As Microsoft.Office.Tools.Word.Action = _
TryCast(sender, Microsoft.Office.Tools.Word.Action)
If clickedAction IsNot Nothing Then
clickedAction.Caption = "Display the location of " & e.Text
End If
End Sub
Private Sub DisplayAddress_Click(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Word.ActionEventArgs) _
Handles DisplayAddress.Click
Dim termStart As Integer = e.Range.Start
Dim termEnd As Integer = e.Range.End
MsgBox("The recognized text '" & e.Text & _
"' begins at position " & termStart & _
" and ends at position " & termEnd)
End Sub
private Microsoft.Office.Tools.Word.Action displayAddress;
private void AddSmartTag()
{
Microsoft.Office.Tools.Word.SmartTag smartTagDemo =
new Microsoft.Office.Tools.Word.SmartTag(
"www.microsoft.com/Demo#DemoSmartTag",
"Demonstration Smart Tag");
// Specify the terms to recognize.
smartTagDemo.Terms.Add("term");
smartTagDemo.Terms.Add("recognize");
// Create the action.
displayAddress = new Microsoft.Office.Tools.Word.Action("To be replaced");
// Add the action to the smart tag.
smartTagDemo.Actions = new Microsoft.Office.Tools.Word.Action[] {
displayAddress };
// Add the smart tag.
this.VstoSmartTags.Add(smartTagDemo);
displayAddress.BeforeCaptionShow += new
Microsoft.Office.Tools.Word.BeforeCaptionShowEventHandler(
displayAddress_BeforeCaptionShow);
displayAddress.Click += new
Microsoft.Office.Tools.Word.ActionClickEventHandler(
displayAddress_Click);
}
void displayAddress_BeforeCaptionShow(object sender,
Microsoft.Office.Tools.Word.ActionEventArgs e)
{
Microsoft.Office.Tools.Word.Action clickedAction =
sender as Microsoft.Office.Tools.Word.Action;
if (clickedAction != null)
{
clickedAction.Caption = "Display the location of " +
e.Text;
}
}
void displayAddress_Click(object sender,
Microsoft.Office.Tools.Word.ActionEventArgs e)
{
int termStart = e.Range.Start;
int termEnd = e.Range.End;
System.Windows.Forms.MessageBox.Show("The recognized text '" + e.Text +
"' begins at position " + termStart.ToString() +
" and ends at position " + termEnd.ToString());
}
Sicherheit
Sie müssen Smarttags in Word aktivieren. Standardmäßig werden Smarttags nicht aktiviert. Weitere Informationen hierzu finden Sie unter Gewusst wie: Aktivieren von Smarttags in Word und Excel.
Siehe auch
Aufgaben
Gewusst wie: Aktivieren von Smarttags in Word und Excel
Gewusst wie: Hinzufügen von Smarttags zu Excel-Arbeitsmappen
Gewusst wie: Hinzufügen von Smarttags auf Anwendungsebene in Projekten, die vor SP1 erstellt wurden
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
Exemplarische Vorgehensweise: Erstellen eines Smarttags mit einem Add-In auf Anwendungsebene
Konzepte
Entwickeln von Office-Projektmappen
Änderungsverlauf
Date |
Versionsgeschichte |
Grund |
---|---|---|
Juli 2008 |
Neue Prozeduren für Add-Ins auf Anwendungsebene wurden hinzugefügt. |
SP1-Featureänderung. |