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


    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.


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

private Microsoft.Office.Tools.Excel.Action DisplayAddress;

private void AddSmartTag()
    Microsoft.Office.Tools.Excel.SmartTag SmartTagDemo =
        new Microsoft.Office.Tools.Excel.SmartTag(
        "Demonstration Smart Tag");

    // Specify a term and an expression to recognize.
        new System.Text.RegularExpressions.Regex(

    // 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.

    DisplayAddress.BeforeCaptionShow += new 

    DisplayAddress.Click += new 

void DisplayAddress_BeforeCaptionShow(object sender, 
    Microsoft.Office.Tools.Excel.ActionEventArgs e)
    DisplayAddress.Caption = "Display the address of " + 

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);


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

Community Additions