How to: Add Smart Tags to Excel Workbooks
The document is archived and information here might be outdated

How to: Add Smart Tags to Excel Workbooks

Note Required applications

The features in this topic are available only if you have the required applications installed.

For more information, see Features Available by Product Combination.

  • One of these development environments:

    VSTO 2005

    -or-

    Visual Studio Team System

  • Microsoft Office 2003

You can add smart tags to your Microsoft Visual Studio 2005 Tools for the Microsoft Office System projects to recognize text in a workbook and give the user access to actions related to the recognized terms.

To add smart tags to an Excel workbook

  1. Create a new Excel project. For more information, see How to: Create Visual Studio Tools for Office Projects.

  2. Create an instance of the SmartTag class.

  3. Specify text that you want to recognize by passing one or more strings to the Terms property or one or more regular expressions to the Expressions property of the SmartTag.

  4. Create the actions for the smart tags. Actions are items that appear on the smart tags menu. Create actions by adding instances of the Action type to the collection of actions exposed by the Actions property.

  5. Create event handlers to respond to the Click event, and optionally the BeforeCaptionShow event, of the actions that you created.

  6. In the code file for the project document, add the SmartTag to the collection of smart tags exposed by the VstoSmartTags property.

Example

The following code example shows how to create a smart tag that recognizes the word term and the regular expression [I|i]ssue\s\d{5,6}. When you run the project, the recognizer marks the word term and any string that matches the regular expression in the workbook as smart tags. To test the example, type the strings term and issue 12345 in different cells in the workbook, and then try the smart tag action. The action modifies the menu caption of the action and displays the cell location of the text that was recognized.

#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

Compiling the Code

  • Add the code to your project and call the AddSmartTag method from the Startup event handler in the project workbook code file.

See Also

Show:
© 2016 Microsoft