SmartTag (Interfaz)

Representa una etiqueta inteligente de un libro de Excel que se personaliza usando las herramientas de desarrollo de Office incluidas en Visual Studio.

Espacio de nombres:  Microsoft.Office.Tools.Excel
Ensamblado:  Microsoft.Office.Tools.Excel (en Microsoft.Office.Tools.Excel.dll)

Sintaxis

'Declaración
<GuidAttribute("f210dc7f-21b5-475e-ae31-76a9b06b9835")> _
Public Interface SmartTag _
    Inherits SmartTagBase
[GuidAttribute("f210dc7f-21b5-475e-ae31-76a9b06b9835")]
public interface SmartTag : SmartTagBase

El tipo SmartTag expone los siguientes miembros.

Propiedades

  Nombre Descripción
Propiedad pública Actions Obtiene o establece una matriz de acciones que expone la etiqueta inteligente. (Se hereda de SmartTagBase).
Propiedad pública Caption Obtiene el nombre de la etiqueta inteligente. (Se hereda de SmartTagBase).
Propiedad pública DefaultExtension Obtiene la extensión predeterminada de este objeto SmartTag.
Propiedad pública Expressions Obtiene la colección de expresiones regulares que reconocerá la etiqueta inteligente. (Se hereda de SmartTagBase).
Propiedad pública Extension Obtiene una extensión personalizada de este objeto SmartTag.
Propiedad pública SmartTagType Obtiene un espacio de nombres que actúa como identificador único de la etiqueta inteligente. (Se hereda de SmartTagBase).
Propiedad pública Terms Obtiene la colección de literales de cadena que reconocerá la etiqueta inteligente. (Se hereda de SmartTagBase).

Arriba

Métodos

  Nombre Descripción
Método público Remove Quita un reconocedor de expresión regular de la etiqueta inteligente. (Se hereda de SmartTagBase).

Arriba

Comentarios

Para crear la etiqueta inteligente, use el método Globals.Factory.CreateSmartTag para crear el objeto SmartTag. Para obtener más información, vea Arquitectura de las etiquetas inteligentes.

Nota

Esta interfaz está implementada por el motor en tiempo de ejecución de Visual Studio Tools para Office. No está prevista su implementación en el código. Para obtener más información, vea Información general sobre el Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office.

Uso

Este tipo está pensado para su uso sólo en proyectos para Excel 2007. Las etiquetas inteligentes están desusadas en Excel 2010. Para obtener más información, vea Información general sobre etiquetas inteligentes.

Esta documentación describe la versión de este tipo que se utiliza en los proyectos de Office destinados a .NET Framework 4. En los proyectos destinados a .NET Framework 3.5, este tipo puede tener miembros diferentes y es posible que los ejemplos de código proporcionados para dicho tipo no funcionen. Para informarse sobre este tipo en los proyectos destinados a .NET Framework 3.5, vea la siguiente sección de referencia en la documentación de Visual Studio 2008: https://go.microsoft.com/fwlink/?LinkId=160658.

Ejemplos

El ejemplo de código siguiente crea un objeto SmartTag con Action que reconoce el término "sale" y la expresión regular "[I|i]ssue\s\d{5,6}". La acción de la etiqueta inteligente modifica el título del menú de la acción en tiempo de ejecución y muestra la ubicación del texto reconocido. Para probar el ejemplo, escriba la palabra "sale" en una celda y la palabra "issue 12345" en otra y, a continuación, pruebe la acción de la etiqueta inteligente.

WithEvents displayAddress As Microsoft.Office.Tools.Excel.Action

Private Sub AddSmartTag()

    ' Create the smart tag for .NET Framework 4 projects.
    Dim smartTagDemo As Microsoft.Office.Tools.Excel.SmartTag = _
        Globals.Factory.CreateSmartTag(
        "www.microsoft.com/Demo#DemoSmartTag",
        "Demonstration Smart Tag")

    ' For .NET Framework 3.5 projects, use the following code to create the smart tag.
    ' 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 for .NET Framework 4 projects.
    displayAddress = Globals.Factory.CreateAction("To be replaced")

    ' For .NET Framework 3.5 projects, use the following code to 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.
    Me.VstoSmartTags.Add(smartTagDemo)
End Sub

Private Sub DisplayAddress_BeforeCaptionShow(ByVal sender As Object, _
    ByVal e As Microsoft.Office.Tools.Excel.ActionEventArgs) _
    Handles DisplayAddress.BeforeCaptionShow

    Dim clickedAction As Microsoft.Office.Tools.Excel.Action = _
        TryCast(sender, Microsoft.Office.Tools.Excel.Action)

    If clickedAction IsNot Nothing Then
        clickedAction.Caption = "Display the address of " & e.Text
    End If
End Sub

Private 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
private Microsoft.Office.Tools.Excel.Action displayAddress;

private void AddSmartTag()
{
    // Create the smart tag for .NET Framework 4 projects.
    Microsoft.Office.Tools.Excel.SmartTag smartTagDemo =
        Globals.Factory.CreateSmartTag(
            "www.microsoft.com/Demo#DemoSmartTag",
            "Demonstration Smart Tag");

    // For .NET Framework 3.5 projects, use the following code to create the smart tag.
    // 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 for .NET Framework 4 projects.
    displayAddress = Globals.Factory.CreateAction("To be replaced");

    // For .NET Framework 3.5 projects, use the following code to 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.
    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)
{
    Microsoft.Office.Tools.Excel.Action clickedAction =
        sender as Microsoft.Office.Tools.Excel.Action;

    if (clickedAction != null)
    {
        clickedAction.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);
    System.Windows.Forms.MessageBox.Show("The recognized text '" + e.Text +
        "' is at range " + smartTagAddress);
}

Vea también

Referencia

Microsoft.Office.Tools.Excel (Espacio de nombres)

Otros recursos

Arquitectura de las etiquetas inteligentes

Cómo: Agregar etiquetas inteligentes a libros de Excel

Cómo: Crear etiquetas inteligentes con reconocedores personalizados en Excel y .NET Framework 3.5