The following code example creates a SmartTag with an Action that recognizes the term "sale" and the regular expression "[I|i]ssue\s\d{5,6}". The action modifies the menu caption of the action at run time and displays the address of the text that was recognized. To test the example, type the word "sale" in one cell and the string "issue 12345" in another cell, and then try the smart tag action.
#Region "Smart Tag Example"
WithEvents DisplayAddress As Microsoft.Office.Tools.Excel.Action
Private Sub AddSmartTag()
Dim SmartTagDemo As New _
Microsoft.Office.Tools.Excel.SmartTag( _
"www.microsoft.com/Demo#DemoSmartTag", _
"Demonstration Smart Tag")
' Specify a term and an expression to recognize.
SmartTagDemo.Terms.Add("sale")
SmartTagDemo.Expressions.Add( _
New System.Text.RegularExpressions.Regex( _
"[I|i]ssue\s\d{5,6}"))
' Create the action.
DisplayAddress = New _
Microsoft.Office.Tools.Excel.Action( _
"To be replaced")
' Add the action to the smart tag.
SmartTagDemo.Actions = New _
Microsoft.Office.Tools.Excel.Action() { _
DisplayAddress}
' Add the smart tag to the workbook.
Me.VstoSmartTags.Add(SmartTagDemo)
End Sub
Sub OpenMessageBox_BeforeCaptionShow(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Excel.ActionEventArgs) _
Handles DisplayAddress.BeforeCaptionShow
DisplayAddress.Caption = "Display the address of " & _
e.Text
End Sub
Sub DisplayAddress_Click(ByVal sender As Object, _
ByVal e As Microsoft.Office.Tools.Excel.ActionEventArgs) _
Handles DisplayAddress.Click
Dim smartTagAddress As String = e.Range.Address( _
ReferenceStyle:=Excel.XlReferenceStyle.xlA1)
MsgBox("The recognized text '" & e.Text & _
"' is at range " & smartTagAddress)
End Sub
#End Region
#region Smart Tag Example
private Microsoft.Office.Tools.Excel.Action DisplayAddress;
private void AddSmartTag()
{
Microsoft.Office.Tools.Excel.SmartTag SmartTagDemo =
new Microsoft.Office.Tools.Excel.SmartTag(
"www.microsoft.com/Demo#DemoSmartTag",
"Demonstration Smart Tag");
// Specify a term and an expression to recognize.
SmartTagDemo.Terms.Add("sale");
SmartTagDemo.Expressions.Add(
new System.Text.RegularExpressions.Regex(
@"[I|i]ssue\s\d{5,6}"));
// Create the action.
DisplayAddress = new Microsoft.Office.Tools.Excel.Action(
"To be replaced");
// Add the action to the smart tag.
SmartTagDemo.Actions = new
Microsoft.Office.Tools.Excel.Action[] {
DisplayAddress };
// Add the smart tag to the workbook.
this.VstoSmartTags.Add(SmartTagDemo);
DisplayAddress.BeforeCaptionShow += new
Microsoft.Office.Tools.Excel.BeforeCaptionShowEventHandler(
DisplayAddress_BeforeCaptionShow);
DisplayAddress.Click += new
Microsoft.Office.Tools.Excel.ActionClickEventHandler(
DisplayAddress_Click);
}
void DisplayAddress_BeforeCaptionShow(object sender,
Microsoft.Office.Tools.Excel.ActionEventArgs e)
{
DisplayAddress.Caption = "Display the address of " +
e.Text;
}
void DisplayAddress_Click(object sender,
Microsoft.Office.Tools.Excel.ActionEventArgs e)
{
string smartTagAddress = e.Range.get_Address(missing,
missing, Excel.XlReferenceStyle.xlA1, missing, missing);
MessageBox.Show("The recognized text '" + e.Text +
"' is at range " + smartTagAddress);
}
#endregion