Cómo: Agregar etiquetas inteligentes a libros de Excel
Actualización: Julio de 2008
Se aplica a |
---|
La información de este tema sólo se aplica a los proyectos y versiones especificados de Visual Studio Tools para Office de Microsoft Office. Proyectos de nivel de documento
Proyectos de nivel de aplicación
Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto. |
Puede agregar etiquetas inteligentes a los libros de Microsoft Office Excel para reconocer texto y proporcionar acceso al usuario a las acciones relacionadas con los términos reconocidos. El código que se escribe para crear y configurar una etiqueta inteligente es el mismo para los proyectos en el nivel del documento y en el nivel de la aplicación, aunque existen algunas diferencias en la manera de asociar una etiqueta inteligente a los libros. El ámbito de la etiquetas inteligentes también varía entre los proyectos en el nivel del documento y los proyectos en el nivel de la aplicación.
En este tema se describen las tareas siguientes:
Agregar etiquetas inteligentes en personalizaciones en el nivel del documento
Agregar etiquetas inteligentes en complementos en el nivel de la aplicación
Para ejecutar una etiqueta inteligente, los usuarios finales deben tener las etiquetas inteligentes habilitadas en Word o en Excel. Para obtener más información, vea Cómo: Habilitar las etiquetas inteligentes en Word y en Excel.
Agregar etiquetas inteligentes en personalizaciones en el nivel del documento
Al agregar una etiqueta inteligente utilizando una personalización en el nivel del documento, la etiqueta inteligente sólo se reconoce en el libro que está asociado a la personalización.
Para agregar una etiqueta inteligente utilizando una personalización en el nivel del documento
Cree un objeto SmartTag y configúrelo para definir el comportamiento de la etiqueta inteligente:
Para especificar el texto que desee reconocer, utilice la propiedad Terms o Expressions.
Para definir las acciones de la etiqueta inteligente en las que los usuarios pueden hacer clic, agregue uno o varios objetos Action a la propiedad Actions.
Para obtener más información, vea Arquitectura de las etiquetas inteligentes.
Agregue el objeto SmartTag a la propiedad VstoSmartTags de la clase ThisWorkbook.
En el ejemplo de código siguiente, se crea una etiqueta inteligente que reconoce la palabra sale y la expresión regular [I|i]ssue\s\d{5,6}. Cuando el usuario escribe sale o una cadena que coincida con la expresión regular (por ejemplo, issue 12345) y, a continuación, hace clic en la etiqueta inteligente, se muestra la ubicación de la celda del texto reconocido. Para ejecutar este código, agréguelo a la clase ThisWorkbook y, a continuación, llame al método AddSmartTag desde el controlador de eventos ThisWorkbook_Startup.
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);
}
Agregar etiquetas inteligentes en complementos en el nivel de la aplicación
A partir del SP1, puede agregar una etiqueta inteligente usando un complemento en el nivel de la aplicación. Puede especificar si la etiqueta inteligente funcionará únicamente en un libro concreto o en todos ellos. Las etiquetas inteligentes que se ejecutan en todos los libros abiertos se denominan etiquetas inteligentes en el nivel de la aplicación.
Para agregar una etiqueta inteligente a un libro concreto
Cree un objeto SmartTag y configúrelo para definir el comportamiento de la etiqueta inteligente:
Para especificar el texto que desee reconocer, utilice la propiedad Terms o Expressions.
Para definir las acciones de la etiqueta inteligente en las que los usuarios pueden hacer clic, agregue uno o varios objetos Action a la propiedad Actions.
Para obtener más información, vea Arquitectura de las etiquetas inteligentes.
Utilice el método GetVstoObject para crear un elemento host Workbook para el libro donde se hospedará la etiqueta inteligente. Para obtener más información sobre la creación de elementos host, vea Ampliar documentos de Word y libros de Excel en complementos en el nivel de la aplicación en tiempo de ejecución.
Nota: Si utiliza un proyecto que creó antes de instalar SP1, debe modificarlo antes de poder utilizar el método GetVstoObject. Para obtener más información, vea Ampliar documentos de Word y libros de Excel en complementos en el nivel de la aplicación en tiempo de ejecución.
Agregue el objeto SmartTag a la propiedad VstoSmartTags de Workbook.
En el ejemplo de código siguiente, se crea una etiqueta inteligente que reconoce la palabra sale y la expresión regular [I|i]ssue\s\d{5,6}. Cuando el usuario escribe sale o una cadena que coincida con la expresión regular (por ejemplo, issue 12345) y, a continuación, hace clic en la etiqueta inteligente, se muestra la ubicación de la celda del texto reconocido. Para ejecutar este código, agréguelo a la clase ThisAddIn y, a continuación, llame al método AddSmartTagToActiveWorkbook desde el controlador de eventos ThisAddIn_Startup.
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 agregar una etiqueta inteligente que funcione en todos los libros abiertos
Cree un objeto SmartTag y configúrelo para definir el comportamiento de la etiqueta inteligente:
Para especificar el texto que desee reconocer, utilice la propiedad Terms o Expressions.
Para definir las acciones de la etiqueta inteligente en las que los usuarios pueden hacer clic, agregue uno o varios objetos Action a la propiedad Actions.
Para obtener más información, vea Arquitectura de las etiquetas inteligentes.
Agregue el objeto SmartTag a la propiedad VstoSmartTags de la clase ThisAddIn.
Nota: Si utiliza un proyecto que creó antes de instalar SP1, debe modificarlo para generar la propiedad VstoSmartTags. Para obtener más información, vea Cómo: Agregar etiquetas inteligentes en el nivel de la aplicación a proyectos creados con anterioridad al SP1.
En el ejemplo de código siguiente, se crea una etiqueta inteligente que reconoce la palabra sale y la expresión regular [I|i]ssue\s\d{5,6}. Cuando el usuario escribe sale o una cadena que coincida con la expresión regular (por ejemplo, issue 12345) y, a continuación, hace clic en la etiqueta inteligente, se muestra la ubicación de la celda del texto reconocido. Para ejecutar este código, agréguelo a la clase ThisAddIn y, a continuación, llame al método AddSmartTag desde el controlador de eventos ThisAddIn_Startup.
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);
}
Seguridad
Debe habilitar las etiquetas inteligentes en Excel. No están habilitadas de manera predeterminada. Para obtener más información, vea Cómo: Habilitar las etiquetas inteligentes en Word y en Excel.
Vea también
Tareas
Cómo: Habilitar las etiquetas inteligentes en Word y en Excel
Cómo: Agregar etiquetas inteligentes a documentos de Word
Cómo: Crear etiquetas inteligentes con reconocedores personalizados en Word
Cómo: Crear etiquetas inteligentes con reconocedores personalizados en Excel
Tutorial: Crear una etiqueta inteligente usando una personalización en el nivel del documento.
Tutorial: Crear una etiqueta inteligente usando un complemento en el nivel de la aplicación
Conceptos
Información general sobre etiquetas inteligentes
Arquitectura de las etiquetas inteligentes
Arquitectura de las etiquetas inteligentes
Desarrollar soluciones de Office
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
Julio de 2008 |
Se han añadido nuevos procedimientos para los complementos en el nivel de la aplicación. |
Cambio de características de SP1. |