Como: Adicionar marcas inteligentes a pastas de trabalho do Excel

Se aplica a

As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e as versões do Microsoft Office.

Projetos de nível de documento

  • O Excel 2003

  • O Excel 2007

Projetos de nível de aplicativo

  • O Excel 2007

For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto.

Você pode adicionar marcas inteligentes a livros do Microsoft Office Excel reconhecer texto e dá ao usuário Acessar a ações relacionadas com os termos reconhecidos.O código que você Gravar para criar e configurar um inteligente marca é o mesmo para projetos de nível de documento e o nível de aplicativo, mas existem algumas diferenças na forma que você associar uma marca inteligente pastas de trabalho.As marcas inteligentes também têm escopo diferente em projetos do nível de documento e o nível de aplicativo.

Este tópico descreve as seguintes tarefas:

  • Adicionar marcas inteligentes em personalizações em nível de documento

  • Adicionar marcas inteligentes em suplementos de nível de aplicativo

Para executar uma marca inteligente, os usuários finais devem ter marcas inteligentes Habilitado no Word ou Excel.For more information, see Como: Habilitar marcas inteligentes no Word e Excel.

Adicionar marcas inteligentes em personalizações de nível de documento

Quando você Adicionar uma marca inteligente usando uma personalização de nível de documento, a marca inteligente é reconhecida somente na pasta de trabalho está associada com a personalização.

Para adicionar uma marca inteligente usando uma personalização de nível de documento

  1. Criar um objeto de SmartTag e configurar esse objeto para definir o comportamento da marca inteligente:

    • Para especificar o texto desejado para reconhecer, use as propriedades de Terms ou Expressions.

    • Para definir as ações que os usuários podem Clique na marca inteligente, adicione um ou mais objetos Action à propriedade Actions.

    For more information, see Arquitetura de marcas inteligentes.

  2. Adicionar o SmartTag à propriedade VstoSmartTags de classe ThisWorkbook.

O exemplo de código a seguir cria uma marca inteligente que reconhece a palavra sale e a expressão regular [I|i]ssue\s\d{5,6}.Quando o usuário digita de venda ou uma Cadeia de Caracteres que corresponde à expressão regular (como problema 12345) e clica na marca inteligente, ele exibe o local de célula do texto reconhecido.Para executar esse código, Adicionar o código para a classe ThisWorkbook e o método AddSmartTag chamada do ThisWorkbook_Startup manipulador de eventos.

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.
    Me.VstoSmartTags.Add(smartTagDemo)
End Sub

Private Sub OpenMessageBox_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()
{
    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.
    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);
}

Adicionar marcas inteligentes em suplementos de nível de aplicativo

Iniciando no SP1, você pode adicionar uma marca inteligente usando um suplemento do nível de aplicativo.Você pode especificar se deseja fazer a marca inteligente trabalhar apenas em uma pasta de trabalho específica, ou em todos os Abrir pastas de trabalho.Marcas inteligentes que são executados em todos os Abrir pastas de trabalho são chamadas marca inteligente de nível de aplicativo s.

Para adicionar uma marca inteligente a uma pasta de trabalho específica

  1. Criar um objeto de SmartTag e configurar esse objeto para definir o comportamento da marca inteligente:

    • Para especificar o texto desejado para reconhecer, use as propriedades de Terms ou Expressions.

    • Para definir as ações que os usuários podem Clique na marca inteligente, adicione um ou mais objetos Action à propriedade Actions.

    For more information, see Arquitetura de marcas inteligentes.

  2. Use o método de GetVstoObject para criar um item de host Workbook da pasta de trabalho que deseja hospedar a marca inteligente.Para obter mais informações sobre como criar itens de host, consulte Estendendo os documentos do Word e Excel pastas de trabalho no nível de aplicativo Adicionar-ins em tempo de execução.

    Observação:

    Se você estiver usando um projeto que você criou antes Você instalar Ed SP1, você deve modificar o projeto antes de poder usar o Método GetVstoObject.For more information, see Estendendo os documentos do Word e Excel pastas de trabalho no nível de aplicativo Adicionar-ins em tempo de execução.

  3. Adicionar o SmartTag à propriedade VstoSmartTags do Workbook.

O exemplo de código a seguir cria uma marca inteligente que reconhece a palavra sale e a expressão regular [I|i]ssue\s\d{5,6}.Quando o usuário digita de venda ou uma Cadeia de Caracteres que corresponde à expressão regular (como problema 12345) e clica na marca inteligente, ele exibe o local de célula do texto reconhecido.Para executar esse código, Adicionar o código para a classe ThisAddIn e o método AddSmartTagToActiveWorkbook chamada do ThisAddIn_Startup manipulador de eventos.

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

Private Sub AddSmartTagToActiveWorkbook()
    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 active workbook.
    Dim vstoWorkbook As Microsoft.Office.Tools.Excel.Workbook = _
        Me.Application.ActiveWorkbook.GetVstoObject()
    vstoWorkbook.VstoSmartTags.Add(smartTagDemo)
End Sub

Private Sub OpenMessageBox_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 AddSmartTagToActiveWorkbook()
{
    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 active workbook.
    Microsoft.Office.Tools.Excel.Workbook vstoWorkbook =
        this.Application.ActiveWorkbook.GetVstoObject();
    vstoWorkbook.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);
}

Para adicionar uma marca inteligente que funciona em Tudo as Abrir pastas de trabalho

  1. Criar um objeto de SmartTag e configurar esse objeto para definir o comportamento da marca inteligente:

    • Para especificar o texto desejado para reconhecer, use as propriedades de Terms ou Expressions.

    • Para definir as ações que os usuários podem Clique na marca inteligente, adicione um ou mais objetos Action à propriedade Actions.

    For more information, see Arquitetura de marcas inteligentes.

  2. Adicionar o SmartTag à propriedade VstoSmartTags de classe ThisAddIn.

    Observação:

    Se você estiver usando um projeto que você criou antes Você instalar Ed SP1, você deve modificar o projeto para gerar o Propriedade VstoSmartTags.For more information, see Como: Adicionar marcas inteligentes do nível de aplicativo a projetos que foram criados antes do SP1.

O exemplo de código a seguir cria uma marca inteligente que reconhece a palavra sale e a expressão regular [I|i]ssue\s\d{5,6}.Quando o usuário digita de venda ou uma Cadeia de Caracteres que corresponde à expressão regular (como problema 12345) e clica na marca inteligente, ele exibe o local de célula do texto reconhecido.Para executar esse código, Adicionar o código para a classe ThisAddIn e o método AddSmartTag chamada do ThisAddIn_Startup manipulador de eventos.

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.
    Me.VstoSmartTags.Add(smartTagDemo)
End Sub

Private Sub OpenMessageBox_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()
{
    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.
    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);
}

Segurança

Você deve ativar as marcas inteligentes no Excel.Por padrão, eles não estão Habilitados.For more information, see Como: Habilitar marcas inteligentes no Word e Excel.

Consulte também

Tarefas

Como: Habilitar marcas inteligentes no Word e Excel

Como: Adicionar marcas inteligentes a documentos do Word

Como: Adicionar marcas inteligentes do nível de aplicativo a projetos que foram criados antes do SP1

Como: Criar marcas inteligentes com identificadores de Personalizar no Word

Como: Criar marcas inteligentes com identificadores Personalizars no Excel

Demonstra Passo a passo: Criando uma marca inteligente com uma personalização em nível de documento

Demonstra Passo a passo: Criando uma marca inteligente com um nível de aplicativo Adicionar - no

Conceitos

Visão geral sobre marcas inteligentes

Arquitetura de marcas inteligentes

Arquitetura de marcas inteligentes

Desenvolvendo soluções do Office

Date

History

Motivo

De 2008 de julho

Adicionado novos procedimentos para suplementos de nível de aplicativo.

Alteração de recurso do SP1.