Compartir a través de


Programar personalizaciones de nivel de documento

Si extiende Microsoft Office Word o Microsoft Office Excel con una personalización de nivel de documento, puede realizar las tareas siguientes:

  • Automatizar la aplicación mediante su modelo de objetos.

  • Agregar controles a la superficie del documento.

  • Llamar a código de Visual Basic para Aplicaciones (VBA) en el documento desde el ensamblado de personalización.

  • Llamar a código del ensamblado de personalización desde VBA.

  • Administrar ciertos aspectos del documento mientras está en un servidor que no tiene Microsoft Office instalado.

  • Personalizar la interfaz de usuario de la aplicación.

Se aplica a: la información de este tema se aplica a los proyectos de nivel de documento para las siguientes aplicaciones: Excel 2007 y Excel 2010; Word 2007 y Word 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.

Algunos aspectos a la hora de escribir código en proyectos de nivel de documento son diferentes con respecto a otros tipos de proyectos en Visual Studio. Muchas de estas diferencias se deben a la manera en que se exponen los modelos de objetos de Office en el código administrado. Para obtener más información, vea Escribir código en soluciones de Office.

Para obtener información general sobre las personalizaciones de nivel de documento y otros tipos de soluciones que se pueden crear mediante las herramientas de desarrollo de Office en Visual Studio, vea Información general sobre el desarrollo de soluciones de Office.

Utilizar las clases generadas en proyectos de nivel de documento

Cuando se crea un proyecto de nivel de documento, Visual Studio genera automáticamente en el proyecto una clase que se puede utilizar para comenzar a escribir código. Visual Studio genera diferentes clases para Word y Excel:

  • En proyectos de nivel de documento para Word, la clase se denomina de forma predeterminada ThisDocument.

  • En proyectos de nivel de documento para Excel se generan varias clases: una para el propio libro y una para cada hoja de cálculo. De forma predeterminada, estas clases tienen los nombres siguientes:

    • ThisWorkbook

    • Sheet1

    • Sheet2

    • Sheet3

La clase generada incluye controladores de eventos a los que se llama cuando el documento se abre o se cierra. Para ejecutar código al abrir el documento, agregue código al controlador de eventos Startup. Para ejecutar código justo antes de que se cierre el documento, agregue código al controlador de eventos Shutdown. Para obtener más información, vea Eventos de los proyectos de Office.

Introducción al diseño de las clases generadas

En los proyectos destinados a .NET Framework 3.5, las clases generadas derivan la mayoría de sus miembros y su comportamiento de las siguientes clases de elementos host del Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office: 

  • ThisDocument: se deriva de Microsoft.Office.Tools.Word.Document.

  • ThisWorkbook: se deriva de Microsoft.Office.Tools.Excel.Workbook.

  • Sheetn: deriva de Microsoft.Office.Tools.Excel.Worksheet

Los elementos host son tipos que están en la parte superior de las jerarquías de los modelos de objetos en los proyectos de Office y extienden el comportamiento de los objetos correspondientes en los ensamblados de interoperabilidad primarios (PIA) de Office. Para obtener más información acerca de los elementos host, vea Información general sobre elementos y controles Host.

En los proyectos destinados a .NET Framework 4, los tipos de elementos host del Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office son interfaces, por lo que las clases generadas no pueden derivar su implementación de los elementos host. En su lugar, las clases generadas derivan la mayoría de sus miembros de las siguientes clases base:

Estas clases base redirigen todas las llamadas realizadas a sus miembros a las implementaciones internas de las correspondientes interfaces de elementos host del Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office. Por ejemplo, si llama al método Protect de la clase ThisDocument, la clase Microsoft.Office.Tools.Word.DocumentBase redirige esta llamada a la implementación interna de la interfaz Microsoft.Office.Tools.Word.Document en Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office. Para obtener más información sobre las diferencias de Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office respecto a los proyectos destinados a .NET Framework 3.5 y los destinados a .NET Framework 4, vea Información general sobre el Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office.

Tener acceso al modelo de objetos de la aplicación host

Para tener acceso al modelo de objetos de la aplicación host, utilice miembros de la clase generada en el proyecto. Cada una de estas clases corresponde a un objeto del modelo de objetos de Excel o Word y contiene en su mayoría las mismas propiedades, métodos y eventos. Por ejemplo, la clase ThisDocument de un proyecto de nivel de documento para Word proporciona en su mayoría los mismos miembros que el objeto Microsoft.Office.Interop.Word.Document del modelo de objetos de Word.

En el ejemplo de código siguiente se muestra cómo utilizar el modelo de objetos de Word para guardar el documento que forma parte de una personalización en el nivel de documento para Word. Este ejemplo está diseñado para su ejecución desde la clase ThisDocument.

Me.Save()
this.Save();

Para lograr el mismo resultado desde fuera de la clase ThisDocument, utilice el objeto Globals para obtener acceso a la clase ThisDocument. Por ejemplo, puede agregar este código a un archivo de código de panel de acciones si desea incluir un botón Guardar en la interfaz de usuario del panel de acciones.

Globals.ThisDocument.Save()
Globals.ThisDocument.Save();

Dado que la clase ThisDocument obtiene la mayoría de sus miembros del elemento host Microsoft.Office.Tools.Word.Document, el método Save al que se llama en este código es de hecho el método Save del elemento host Microsoft.Office.Tools.Word.Document. Este método corresponde al método Save del objeto Microsoft.Office.Interop.Word.Document en el modelo de objetos de Word.

Para obtener más información acerca del uso de los modelos de objetos de Word y Excel, vea Información general acerca del modelo de objetos de Word y Información general sobre el modelo de objetos de Excel.

Para obtener más información acerca del objeto Globals, vea Acceso global a objetos en los proyectos de Office.

Agregar controles a documentos

Para personalizar la interfaz de usuario del documento, puede agregar controles de formularios Windows Forms o controles host a la superficie del documento. Si combina diferentes conjuntos de controles y escribe código, puede enlazar los controles a datos, recopilar información del usuario y responder a acciones del usuario.

Los controles host son clases que extienden algunos de los objetos de los modelos de objetos de Word y Excel. Por ejemplo, el control host Microsoft.Office.Tools.Excel.ListObject proporciona toda la funcionalidad de Microsoft.Office.Interop.Excel.ListObject en Excel. Sin embargo, el control host Microsoft.Office.Tools.Excel.ListObject también tiene eventos adicionales y funciones de enlace de datos.

Para obtener más información, consulte Información general sobre elementos y controles Host y Información general sobre controles de formularios Windows Forms en documentos de Office.

Combinar personalizaciones de VBA y de nivel de documento

Puede utilizar código de VBA en un documento que forma parte de una personalización de nivel de documento. Puede llamar a código de VBA del documento desde el ensamblado de personalización y también puede configurar el proyecto para permitir que código de VBA del documento llame a código del ensamblado de personalización.

Para obtener más información, consulte Combinar personalizaciones de VBA y de nivel de documento.

Administrar documentos en un servidor

Puede administrar diferentes aspectos de las personalizaciones de nivel de documento en un servidor que no tiene Microsoft Office Word o Microsoft Office Excel instalado. Por ejemplo, puede obtener acceso y modificar los datos en la caché de datos del documento. También puede administrar el ensamblado de personalización asociado al documento. Por ejemplo, puede quitar mediante programación el ensamblado del documento para que éste ya no ejecute el código, o bien puede asociar mediante programación un ensamblado a un documento.

Para obtener más información, consulte Administrar documentos en un servidor mediante la clase ServerDocument.

Personalizar la interfaz de usuario de aplicaciones de Microsoft Office

Puede personalizar la interfaz de usuario de Word y Excel de las siguientes maneras con una personalización de nivel de documento:

Para obtener más información sobre cómo personalizar la interfaz de usuario de las aplicaciones de Microsoft Office, vea Personalización de la interfaz de usuario de Office.

Vea también

Conceptos

Administrar documentos en un servidor mediante la clase ServerDocument

Obtener objetos extendidos a partir de objetos nativos de Office en personalizaciones en el nivel del documento

Escribir código en soluciones de Office

Otros recursos

Controles en documentos de Office

Combinar personalizaciones de VBA y de nivel de documento