Requisitos: Usar VSTO para desarrollar un complemento sencillo para Office, como conseguir el complemento de longitud de caracteres Word China.
Modelo de objeto de palabra
Word ofrece cientos de objetos con los que interactuar. Estos objetos están organizados en una jerarquía que sigue estrictamente la interfaz de usuario. El objeto Application está en la parte superior de la jerarquía. Este objeto representa la instancia actual de Word. El objeto Application contiene los objetos Documento, Selección, Marcador y Rango. Cada uno de estos objetos tiene varios métodos y propiedades que pueden usarse para manipular e interactuar con el objeto.
La siguiente imagen muestra una vista de estos objetos en la jerarquía del modelo de objetos de Word.
Documentación:El inicio de sesión del hipervínculo es visible.
Objeto de aplicación
El objeto Application representa la aplicación Word y es el padre de todos los demás objetos. Sus miembros suelen aplicarse a la Palabra en su conjunto. Puedes usar sus propiedades y métodos para controlar el entorno de Word.
En un proyecto adicional VSTO, puedes acceder al objeto ThisAddIn usando los campos Application de la clase Application.
En un proyecto a nivel de documento, el objeto ThisDocument puede accederse usando la propiedad Application de la clase Application.
Objeto documento
El objeto Documento es el centro de la programación de Word. Representa un documento y todo su contenido. Cuando abres un documento o creas uno nuevo, se crea un nuevo objeto Documento que se añade a la colección Application del objeto Documentos. Un documento con un enfoque se conoce como documento activo. Se representa mediante la propiedad Application del objeto ActiveDocument.
Cuando creas un proyecto a nivel de documento, puedes acceder al miembro ThisDocument usando la clase Document generada en el proyecto. El objeto ThisDocument puede accederse usando la palabra clave Me o esta palabra clave para el código en la clase Document, o usando Globals.ThisDocument para código fuera de la clase ThisDocument.
Objeto de selección
El objeto Selección representa la región seleccionada actualmente. Al realizar una acción en la interfaz de usuario de Word, como poner texto en negrita, puedes seleccionar o resaltar el texto y luego aplicar el formato. El objeto Selección siempre está presente en el documento. Si no se comprueba nada, indica un punto de inserción. Además, el contenido seleccionado puede contener varios bloques de texto no adyacentes.
Objeto de alcance
El objeto Rango representa áreas adyacentes en el documento y se define por las posiciones de los caracteres de inicio y fin. No está limitado a un solo objeto de Rango. Puedes definir varios objetos de rango en el mismo documento. Los objetos de rango tienen las siguientes características:
- Puede contener solo puntos de inserción individuales, o puede contener un rango de texto o todo el documento.
- Incluye caracteres no impresos como espacios, tabulaciones y marcadores de párrafo.
- Puede ser el área representada por el contenido seleccionado actualmente o el área que es diferente de este contenido.
- No es visible en el documento, a diferencia del contenido seleccionado, que siempre es visible.
- No se guarda con la documentación y solo existe cuando el código está en ejecución.
- Cuando se inserta texto al final de un rango, Word amplía automáticamente el rango para incluir el texto insertado.
Objetos de Control de Contenido (Objetos de Control de Contenido)
ContentControl proporciona una forma de controlar la entrada y la representación de texto y otros tipos de contenido dentro de un documento de Word. ContentControl puede mostrar muchos tipos diferentes de interfaz de usuario optimizadas para su uso en documentos de Word, como controles de texto multimensaje, selectores de fechas o combo boxes. También puedes usar ContentControl para evitar que los usuarios editen ciertas secciones de un documento o plantilla.
Visual Studio extiende el objeto ContentControl a varios controles de host diferentes. Mientras que el objeto ContentControl muestra todos los diferentes tipos de interfaz disponibles para controles de contenido, Visual Studio proporciona un tipo diferente para cada control de contenido. Por ejemplo, puedes usar RichTextContentControl para crear un control de texto multi-mensaje, o puedes usar DatePickerContentControl para crear un selector de fechas. Estos controles de host se comportan de forma similar a los ContentControl nativos, pero también cuentan con capacidades adicionales de enlace de eventos y datos.
Objeto de marcador
El objeto Marcador representa áreas adyacentes en un documento con ambas posiciones de inicio y final. Puedes usar marcadores para marcar una ubicación en el documento o como contenedor para la versión china del documento. Un objeto Marcador puede contener puntos de inserción o ser tan grande como todo el documento. Bookmark tiene las siguientes características que lo distinguen de los objetos Range:
- Puedes nombrar los marcadores al diseñar.
- El objeto Marcador se guarda junto con el documento, por lo que no se elimina cuando el código deja de ejecutarse o el documento se cierra.
- Accede a la propiedad View configurando la propiedad View en false o true.
- Visual Studio amplía el objeto Marcador proporcionando un control de host de Marcadores. Los controles de host de marcadores se comportan de forma similar a los marcadores nativos, pero también cuentan con capacidades adicionales de enlace de eventos y datos. Puedes vincular datos a un control de marcadores en un documento de la misma manera que vinculas datos a un control de cuadro de texto en un formulario de Windows.
Crear un complemento de VSTO de Word
Tras entender los conceptos básicos, abre VS 2022 para crear un nuevo complemento de VSTO de Word, como se muestra en la figura de abajo:
Crea una cinta visual como se muestra en la siguiente figura:
Haz doble clic Ribbon1.cs para abrir, eliminar la pestaña predeterminada y arrastrar una nueva pestaña, como se muestra a continuación:
Arrastra un control de grupo y un botón a la pestaña de la nueva pestaña, como se muestra a continuación:
Haz doble clic en el botón recién creado para crear un evento de clic con el siguiente código:
(Fin)
|