Como: Adicionar marcas inteligentes para pastas de trabalho do Excel
Você pode adicionar marcas inteligentes para pastas de trabalho do Excel de Microsoft Office para reconhecer o texto e fornecer ao usuário acesso às ações relacionadas aos termos reconhecidos. O código que você escreve para criar e configurar uma marca inteligente é o mesmo para os projetos de nível de aplicativo e de documento, mas existem algumas diferenças na maneira como que você associar uma marca inteligente pastas de trabalho. As marcas inteligentes também têm um escopo diferente em projetos de nível de aplicativo e de documento.
Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de nível de aplicativo para Excel 2007. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
Este tópico descreve as seguintes tarefas:
A inclusão de marcas inteligentes no nível do documento personalizações
A inclusão de marcas inteligentes em suplementos de nível de aplicativo
Para executar uma marca inteligente, os usuários finais devem ter marcas inteligentes ativadas no Word ou Excel. For more information, see Como: Ativar marcas inteligentes no Word e Excel.
Para obter uma versão de vídeo deste tópico, consulte Fazer como i: Adicionar marcas inteligentes para pastas de trabalho do Excel.
A inclusão de marcas inteligentes no nível do documento personalizações
Quando você adiciona uma marca inteligente usando uma personalização em nível de documento, a marca inteligente é reconhecida apenas na pasta de trabalho que está associada com a personalização.
Para adicionar uma marca inteligente usando uma personalização em nível de documento
Criar um SmartTag object e configurar esse objeto para definir o comportamento da marca inteligente:
Para especificar o texto que você deseja reconhecer, use o Terms ou Expressions Propriedades.
Para definir as ações que os usuários podem clicar na marca inteligente, adicione um ou mais Action objetos para o Actions propriedade.
For more information, see Arquitetura de marcas inteligentes.
Adicionar o SmartTag para o VstoSmartTags propriedade da ThisWorkbook classe.
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 venda ou uma seqüência de caracteres que corresponde à expressão regular (como problema 12345) e, em seguida, clicar na marca inteligente, ele exibe o local da célula do texto reconhecido. Para executar esse código, adicione o código para o ThisWorkbook de classe e chamar o AddSmartTag método a partir do ThisWorkbook_Startup manipulador de eventos.
Observação |
---|
O exemplo a seguir funciona em projetos de destino .NET Framework 4. Para usar este exemplo em projetos de destino.NET Framework 3.5, consulte os comentários no código. |
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);
}
A inclusão de marcas inteligentes em suplementos de nível de aplicativo
Quando você adiciona uma marca inteligente usando um suplemento em nível de aplicativo, você pode especificar se deseja fazer com que a marca inteligente funciona apenas em uma pasta de trabalho específica ou abrir todas as pastas de trabalho. São chamadas de marcas inteligentes que são executados em pastas de trabalho abertas todas as marca inteligente de nível de aplicativos.
Para adicionar uma marca inteligente para uma pasta de trabalho específica
Criar um SmartTag object e configurar esse objeto para definir o comportamento da marca inteligente:
Para especificar o texto que você deseja reconhecer, use o Terms ou Expressions Propriedades.
Para definir as ações que os usuários podem clicar na marca inteligente, adicione um ou mais Action objetos para o Actions propriedade.
For more information, see Arquitetura de marcas inteligentes.
Para criar um Microsoft.Office.Tools.Excel.Workbook o item de host para a pasta de trabalho que você deseja hospedar a marca inteligente, use o GetVstoObject método. Para obter mais informações sobre como criar itens de host, consulte Estendendo os documentos do Word e pastas de trabalho do Excel em suplementos de nível de aplicativo em tempo de execução.
Adicionar o SmartTag para o VstoSmartTags propriedade da Microsoft.Office.Tools.Excel.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 venda ou uma seqüência de caracteres que corresponde à expressão regular (como problema 12345) e, em seguida, clicar na marca inteligente, ele exibe o local da célula do texto reconhecido. Para executar esse código, adicione o código para o ThisAddIn da classe, chamada a AddSmartTagToWorkbook método a partir do ThisAddIn_Startup manipulador de eventos e passar um Microsoft.Office.Interop.Excel.Workbook para AddSmartTagToWorkbook.
Observação |
---|
O exemplo a seguir funciona em projetos de destino .NET Framework 4. Para usar este exemplo em projetos de destino.NET Framework 3.5, consulte os comentários no código. |
WithEvents displayAddress As Microsoft.Office.Tools.Excel.Action
Private Sub AddSmartTagToWorkbook(ByVal workbook As Excel.Workbook)
' Create a smart tag for .NET Framework 3.5 projects.
' Dim smartTagDemo As New _
' Microsoft.Office.Tools.Excel.SmartTag( _
' "www.microsoft.com/Demo#DemoSmartTag", _
' "Demonstration Smart Tag")
' Create a smart tag for .NET Framework 4 projects.
Dim smartTagDemo As SmartTag = Globals.Factory.CreateSmartTag(
"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 3.5 projects.
' displayAddress = New Microsoft.Office.Tools.Excel.Action( _
' "To be replaced")
' Create the action for .NET Framework 4 projects.
displayAddress = Globals.Factory.CreateAction("To be replaced")
' Add the action to the smart tag.
smartTagDemo.Actions = New Microsoft.Office.Tools.Excel.Action() { _
displayAddress}
' Get the host item for the workbook in .NET Framework 3.5 projects.
' Dim vstoWorkbook As Microsoft.Office.Tools.Excel.Workbook = _
' workbook.GetVstoObject()
' Get the host item for the workbook in .NET Framework 4 projects.
Dim vstoWorkbook As Microsoft.Office.Tools.Excel.Workbook = _
Globals.Factory.GetVstoObject(workbook)
' Add the smart tag to the active workbook.
vstoWorkbook.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 AddSmartTagToWorkbook(Excel.Workbook workbook)
{
Microsoft.Office.Tools.Excel.SmartTag smartTagDemo =
// Create a smart tag for .NET Framework 3.5 projects.
// new Microsoft.Office.Tools.Excel.SmartTag(
// "www.microsoft.com/Demo#DemoSmartTag",
// "Demonstration Smart Tag");
// Create a smart tag for .NET Framework 4 projects.
Globals.Factory.CreateSmartTag(
"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 3.5 projects.
// displayAddress = new Microsoft.Office.Tools.Excel.Action(
// "To be replaced");
// Create the action for .NET Framework 4 projects.
displayAddress = Globals.Factory.CreateAction("To be replaced");
// Add the action to the smart tag.
smartTagDemo.Actions = new
Microsoft.Office.Tools.Excel.Action[] { displayAddress };
// Get the host item for the workbook in .NET Framework 3.5 projects.
// Microsoft.Office.Tools.Excel.Workbook vstoWorkbook =
// workbook.GetVstoObject();
// Get the host item for the workbook in .NET Framework 4 projects.
Microsoft.Office.Tools.Excel.Workbook vstoWorkbook =
Globals.Factory.GetVstoObject(workbook);
// Add the smart tag to the active workbook.
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 abrir todas as pastas de trabalho
Criar um SmartTag object e configurar esse objeto para definir o comportamento da marca inteligente:
Para especificar o texto que você deseja reconhecer, use o Terms ou Expressions Propriedades.
Para definir as ações que os usuários podem clicar na marca inteligente, adicione um ou mais Action objetos para o Actions propriedade.
For more information, see Arquitetura de marcas inteligentes.
Adicionar o SmartTag para o VstoSmartTags propriedade da ThisAddIn classe.
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 venda ou uma seqüência de caracteres que corresponde à expressão regular (como problema 12345) e, em seguida, clicar na marca inteligente, ele exibe o local da célula do texto reconhecido. Para executar esse código, adicione o código para o ThisAddIn de classe e chamar o AddSmartTag método a partir do ThisAddIn_Startup manipulador de eventos.
Observação |
---|
O exemplo a seguir funciona em projetos de destino .NET Framework 4. Para usar este exemplo em projetos de destino.NET Framework 3.5, consulte os comentários no código. |
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);
}
Segurança
Você deve ativar marcas inteligentes no Excel. Por padrão, eles não estão ativados. For more information, see Como: Ativar marcas inteligentes no Word e Excel.
Consulte também
Tarefas
Como: Ativar marcas inteligentes no Word e Excel
Como: Adicionar marcas inteligentes em documentos do Word
Como: Criar marcas inteligentes com reconhecedores de personalizado no Word e.NET Framework 3.5
Como: Criar marcas inteligentes com reconhecedores de personalizadas no Excel e.NET Framework 3.5
Conceitos
Arquitetura de marcas inteligentes
Outros recursos
Como faço Adicionar marcas inteligentes para pastas de trabalho do Excel?