Anforderungen: Verwenden Sie VSTO, um ein einfaches Plug-in für Office zu entwickeln, zum Beispiel das Word-Plugin, das chinesische Zeichenlänge zu erhalten.
Wortobjektmodell
Word bietet Hunderte von Objekten zur Interaktion. Diese Objekte sind in einer Hierarchie organisiert, die strikt der Benutzeroberfläche folgt. Das Anwendungsobjekt steht an der Spitze der Hierarchie. Dieses Objekt stellt die aktuelle Instanz von Word dar. Das Anwendungsobjekt enthält die Objekte Dokument, Auswahl, Lesezeichen und Bereich. Jedes dieser Objekte besitzt eine Reihe von Methoden und Eigenschaften, die verwendet werden können, um das Objekt zu manipulieren und mit ihm zu interagieren.
Das folgende Bild zeigt eine Ansicht dieser Objekte in der Word-Objektmodellhierarchie.
Dokumentation:Der Hyperlink-Login ist sichtbar.
Anwendungsobjekt
Das Application-Objekt stellt die Word-Anwendung dar und ist der Elternteil aller anderen Objekte. Seine Mitglieder beziehen sich meist auf Word als Ganzes. Man kann seine Eigenschaften und Methoden nutzen, um die Word-Umgebung zu steuern.
In einem VSTO-Add-in-Projekt können Sie auf das ThisAddIn-Objekt zugreifen, indem Sie die Anwendungsfelder der Application-Klasse verwenden.
In einem Dokumentenprojekt kann das ThisDocument-Objekt über die Application-Eigenschaft der Application-Klasse genutzt werden.
Dokumentobjekt
Das Document Object ist das Zentrum der Word-Programmierung. Es stellt ein Dokument und seinen gesamten Inhalt dar. Wenn Sie ein Dokument öffnen oder ein neues Dokument erstellen, wird ein neues Dokumentobjekt erstellt und zur Anwendungssammlung des Dokumentenobjekts hinzugefügt. Ein Dokument mit Schwerpunkt wird als aktives Dokument bezeichnet. Sie wird durch die Anwendungseigenschaft des ActiveDocument-Objekts dargestellt.
Wenn Sie ein Dokumentenprojekt erstellen, können Sie auf das ThisDocument-Mitglied zugreifen, indem Sie die im Projekt generierte Document-Klasse verwenden. Das ThisDocument-Objekt kann durch die Verwendung des Schlüsselworts Me oder this for code in der Document-Klasse oder durch die Verwendung von Globals.ThisDocument für Code außerhalb der ThisDocument-Klasse erreicht werden.
Selektionsobjekt
Das Auswahlobjekt stellt die aktuell ausgewählte Region dar. Wenn Sie eine Aktion in der Word-Benutzeroberfläche ausführen, wie zum Beispiel Text fett zu machen, können Sie den Text auswählen oder hervorheben und dann die Formatierung anwenden. Das Selection-Objekt ist immer im Dokument vorhanden. Wenn nichts geprüft wird, zeigt es einen Einsetzpunkt an. Zusätzlich kann der ausgewählte Inhalt mehrere nicht benachbarte Textblöcke enthalten.
Reichweitenobjekt
Das Range-Objekt repräsentiert benachbarte Bereiche im Dokument und wird durch die Start- und Endzeichenpositionen definiert. Es ist nicht auf ein einziges Reichweitenobjekt beschränkt. Man kann mehrere Range-Objekte im selben Dokument definieren. Reichweitenobjekte weisen folgende Eigenschaften auf:
- Es kann nur einzelne Einfügungspunkte enthalten, oder es kann einen Textbereich oder das gesamte Dokument enthalten.
- Es umfasst nicht gedruckte Zeichen wie Leerzeichen, Tabulaturen und Absatzmarker.
- Es kann der Bereich sein, der durch den aktuell ausgewählten Inhalt repräsentiert wird, oder der Bereich, der sich von diesem Inhalt unterscheidet.
- Sie ist im Dokument nicht sichtbar, im Gegensatz zum ausgewählten Inhalt, der immer sichtbar ist.
- Sie wird nicht in der Dokumentation gespeichert und existiert nur, wenn der Code läuft.
- Wenn Text am Ende eines Bereichs eingefügt wird, erweitert Word den Bereich automatisch, um den eingefügten Text einzuschließen.
Inhaltskontrollobjekte (Inhaltskontrollobjekte)
ContentControl bietet eine Möglichkeit, die Eingabe und Darstellung von Text und anderen Inhaltsarten innerhalb eines Word-Dokuments zu steuern. ContentControl kann viele verschiedene Arten von Benutzeroberflächen anzeigen, die für die Verwendung in Word-Dokumenten optimiert sind, wie z. B. Mehrfach-Nachrichtentextsteuerungen, Datumswähler oder Kombiboxen. Sie können auch ContentControl verwenden, um Benutzer daran zu hindern, bestimmte Abschnitte eines Dokuments oder einer Vorlage zu bearbeiten.
Visual Studio erweitert das ContentControl-Objekt auf mehrere verschiedene Host-Steuerungen. Während das ContentControl-Objekt alle verschiedenen UI-Arten für Inhaltssteuerungen anzeigt, bietet Visual Studio für jede Inhaltssteuerung einen anderen Typ. Zum Beispiel können Sie RichTextContentControl verwenden, um eine Textsteuerung mit mehreren Nachrichten zu erstellen, oder Sie können DatePickerContentControl verwenden, um einen Datumswähler zu erstellen. Diese Host-Steuerungen verhalten sich ähnlich wie native ContentControls, verfügen aber auch über zusätzliche Event- und Datenbindungsfunktionen.
Lesezeichen-Objekt
Das Bookmark-Objekt stellt benachbarte Bereiche in einem Dokument mit sowohl Start- als auch Endposition dar. Sie können Lesezeichen verwenden, um einen Ort im Dokument zu markieren oder als Container für die chinesische Version des Dokuments. Ein Bookmark-Objekt kann Einfügungspunkte enthalten oder so groß sein wie das gesamte Dokument. Bookmark weist folgende Eigenschaften auf, die es von Range-Objekten unterscheiden:
- Man kann beim Entwerfen Lesezeichen benennen.
- Das Bookmark-Objekt wird zusammen mit dem Dokument gespeichert, sodass es nicht gelöscht wird, wenn der Code aufhört oder das Dokument geschlossen wird.
- Greifen Sie auf die View-Eigenschaft zu, indem Sie die View-Eigenschaft auf falsch oder true setzen.
- Visual Studio erweitert das Bookmark-Objekt, indem es eine Bookmark-Host-Steuerung bereitstellt. Bookmark-Host-Steuerungen verhalten sich ähnlich wie native Bookmarks, verfügen aber auch über zusätzliche Event- und Datenbindungsfunktionen. Man kann Daten an eine Lesezeichensteuerung in einem Dokument binden, genauso wie man Daten an eine Textbox-Steuerung in einem Windows-Formular bindet.
Erstellen Sie ein Word-VSTO-Add-in
Nachdem Sie die Grundkonzepte verstanden haben, öffnen Sie VS 2022, um ein neues Word VSTO-Add-in zu erstellen, wie in der Abbildung unten gezeigt:
Erstellen Sie ein visuelles Band, wie in der folgenden Abbildung gezeigt:
Doppelklicke Ribbon1.cs zum Öffnen, entferne den Standard-Tab-Tab und ziehe einen neuen Tab hinein, wie unten gezeigt:
Ziehen Sie eine Gruppen- und eine Tastensteuerung in den neuen Tab-Tab, wie unten gezeigt:
Doppelklicken Sie auf den neu erstellten Button, um ein Klick-Event mit folgendem Code zu erstellen:
(Ende)
|