Programar personalizaciones de nivel de documento

Actualización: noviembre 2007

Se aplica a

La información de este tema sólo se aplica a los proyectos de Visual Studio Tools para Office y versiones de Microsoft Office especificados.

Tipo de proyecto

  • Proyectos de nivel de documento

Versión de Microsoft Office

  • Microsoft Office System 2007

  • Microsoft Office 2003

Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto.

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 de Microsoft Office mediante el modelo de objetos de la aplicación.

  • 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.

Para obtener información general sobre las personalización en el nivel de documento y otros tipos de soluciones que puede crear con Visual Studio Tools para Office, vea Información general sobre el desarrollo de soluciones de Office.

Escribir código en proyectos en el nivel de documento

Al crear un proyecto de nivel de documento, Visual Studio Tools para Office genera automáticamente una clase en el proyecto que puede utilizar para comenzar a escribir código. Visual Studio Tools para Office genera clases diferentes 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 proyectos de Visual Studio Tools para Office.

Cada una de las clases automáticamente generadas de un proyecto en el nivel de documento deriva de una clase de Visual Studio Tools para Office denominada elemento host. Por ejemplo, la clase ThisDocument de un proyecto de Word deriva del elemento host Microsoft.Office.Tools.Word.Document. Para obtener más información, consulte Información general sobre elementos y controles Host.

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 una clase del modelo de objetos de Excel o Word y contienen las mismas propiedades, métodos y eventos en su mayoría. Por ejemplo, la clase ThisDocument de un proyecto en el nivel de documento para Word proporciona en su mayoría los mismos miembros que la clase 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 conseguir el mismo resultado desde fuera de la clase ThisDocument, utilice el objeto Globals para tener acceso a la clase ThisDocument. Para obtener más información acerca del objeto Globals, vea Acceso global a objetos en proyectos de Visual Studio Tools para Office.

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 deriva 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 de la clase 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.

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 de Visual Studio Tools para Office. En todos los proyectos de nivel de documento, puede llamar a código de VBA del documento desde el ensamblado de personalización. En los proyectos de nivel de documento para Microsoft Office System 2007, 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 de Visual Studio Tools para Office 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 con una personalización de nivel de documento.

Tanto en las versiones 2007 y 2003 de Microsoft Office

En Microsoft Office 2003 y Microsoft Office System 2007, puede personalizar la interfaz de usuario de las maneras siguientes:

Versión 2007

En Word 2007 y Excel 2007, también puede personalizar la interfaz de usuario de las siguientes formas:

Versión 2003

En Word 2003 y Excel 2003, también puede personalizar la interfaz de usuario de las siguientes formas:

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

Tareas

Cómo: Crear y modificar propiedades personalizadas para documentos

Cómo: Leer y escribir en propiedades de un documento

Conceptos

Combinar personalizaciones de VBA y de nivel de documento

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

Otros recursos

Controles en documentos de Office