How to create Excel, Word smart tags in
VB.NET, C#, C++ for Office 2013 - 2002

Add-in Express™
for Microsoft® Office and .net

Add-in Express .NET and smart tags

With Add-in Express you can quickly create a new Smart Tag for Microsoft Word, Excel, Outlook (with Word as a default e-mail editor) and PowerPoint in Office 2010, 2007, Office 2003 and 2002 (XP) in VB.NET, C#, C++. A Smart Tag solution based on Add-in Express implements one Smart Tag recognizer, but we call this solution a SmartTag library. This is because the Add-in Express architecture allows you to develop several smart tags within one solution and one recognizer. That is why we regard Smart Tag solutions based on Add-in Express as Smart Tag libraries rather than one SmartTag.

See the most recent documentation in the Add-in Express Developer Guide on how to create a smart tag for Office 2010 - 2002. Now let's build a sample smart tag project for Excel 2007.

1. Create a new smart tag library

Just like in other Microsoft Office customization technologies, Add-in Express implements the Smart Tag library through a special module, the smart tag module. It centralizes the functional code of all smart tags and is a container for the Smart Tag components representing your smart tags. This component allows you to specify recognized words or phrases and to add custom actions related to Smart Tags. To create a new Smart Tag library based on Add-in Express, close all opened solutions, choose "File | New | Project…", select the "Other Projects | Extensibility Projects" item, click the "Smart Tag" icon, and click the OK button.

Wizard to create a new smart tag library

This will start the wizard that asks you to choose a programming language and then generates the project. When the wizard is finished, the smart tag library solution will be created and opened in Visual Studio. This solution includes the main Smart Tag project with the Smart Tag module and the setup project (optional). The Smart Tag module is a container for Smart Tag components and implements the logic required by the Smart Tag technology.

2. Smart Tag module

SmartTagModule.vb (or SmartTagModule.cs) is the core part of your project. It represents a smart tag library - a set of smart tags that have a common recognizer. The designer of the Smart Tag module allows you to set up the smart tag library properties and to add components onto the module.

Smart Tag module

Technical details:

Smart Tag library name, description, and namespace URI
When the smart tag library is connected and disconnected

3. Add a new smart tag

To add a new SmartTag, select the Smart Tag module, right-click it and choose the Add Smart Tag item in the context menu.

Adding a new smart tag component

4. Set up the smart tag component

The Smart Tag component provides you with two word recognizing strategies: a) based on the list of words or phrases and b) custom recognition based on an event fired by the host application.

The screenshot below highlights creating a smart tag based on the list of words. The smart tag component is added to the module, its caption is My Smart Tag 1. In the Actions collection editor, there is the only action with caption My Action 1. The Kind property of the component is set to ktList. This value implies using the list of words or phrases supplied in the RecognizedWords property. The String Collection Editor allows adding words or phrases to be recognized by the smart tag.

Adding smart tag actions and recognized words

Then you handle the Click event, say, with the following code:

Private Sub AdxSmartTagAction1_Click(ByVal sender As System.Object, _
         ByVal e As AddinExpress.SmartTag.ADXSmartTagActionEventArgs) _
         Handles AdxSmartTagAction1.Click
      MsgBox("Recognized text is '" + e.Text + "'!")
End Sub

With these settings and event handlers, the smart tag works in your Excel workbook as shown on the screenshot below.

Smart tag in action

Technical details:

Smart tag caption, recognition strategy, collection of actions, collection of recognized words
Every action had a caption shown in the SmartTag context menu
When the smart tag is required to recognize a word by the host application
When the user clicks the Property button in the SmartTags dialog
When the user clicks the smart tag action in the smart tag context menu

5. Deploying the smart tag

Add-in Express smart tags are based on the Add-in Express Loader which is a feature-rich shim and bootstrap application.

Deploying the smart tag

Included into the automatically generated setup project, the Add-in Express Loader gives you with the following benefits:

  • Manifest-configured features: setup log, non-admin installation, updating a smart tag while it is loaded
  • Ready-to-use custom actions for your setup project
  • Per-user and per-computer add-in installations
  • You can sign the Add-in Express Loader with a digital certificate

See also how to build smart tag for Excel and Word in Delphi.