Programmieren von Anpassungen auf Dokumentebene

Wenn Sie Microsoft Office Word oder Microsoft Office Excel mit einer Anpassung auf Dokumentebene erweitern, können Sie die folgenden Aufgaben ausführen:

  • Sie können die Anwendung mithilfe des Objektmodells automatisieren.

  • Sie können der Oberfläche des Dokuments Steuerelemente hinzufügen.

  • Sie können VBA (Visual Basic for Applications)-Code im Dokument von der Anpassungsassembly aufrufen.

  • Sie können Code in der Anpassungsassembly von VBA aufrufen.

  • Sie können bestimmte Aspekte des Dokuments verwalten, während es sich auf einem Server ohne Microsoft Office befindet.

  • Sie können die Benutzeroberfläche der Anwendung anpassen.

Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokumentebene für die folgenden Anwendungen: Excel 2007 und Excel 2010, Word 2007 und Word 2010. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.

Einige Aspekte beim Schreiben von Code in Projekten auf Dokumentebene unterscheiden sich von anderen Projekttypen in Visual Studio. Viele dieser Unterscheide werden durch die Art und Weise verursacht, wie die Office-Objektmodelle im verwalteten Code verfügbar gemacht werden. Weitere Informationen finden Sie unter Schreiben von Code in Office-Projektmappen.

Allgemeine Informationen zu Anpassungen auf Dokumentebene und anderen Typen von Lösungen, die mit den Office-Entwicklungstools in Visual Studio erstellt werden können, finden Sie unter Übersicht über die Entwicklung von Office-Projektmappen.

Verwenden der generierten Klassen in Projekten auf Dokumentebene

Beim Erstellen eines Projekts auf Dokumentebene generiert Visual Studio automatisch eine Klasse im Projekt, die Sie zum Schreiben von Code verwenden können. Visual Studio generiert unterschiedliche Klassen für Word und Excel:

  • In Projekten auf Dokumentebene für Word wird die Klasse standardmäßig als ThisDocument bezeichnet.

  • Projekte auf Dokumentebene für Excel verfügen über mehrere generierte Klassen: eine für die Arbeitsmappe und eine für jedes Arbeitsblatt. Standardmäßig lauten die Namen dieser Klassen folgendermaßen:

    • ThisWorkbook

    • Sheet1

    • Sheet2

    • Sheet3

Die generierte Klasse umfasst Ereignishandler, die aufgerufen werden, wenn das Dokument geöffnet oder geschlossen wird. Wenn Code beim Öffnen des Dokuments ausgeführt werden soll, fügen Sie dem Startup-Ereignishandler Code hinzu. Wenn Code direkt vor dem Schließen des Dokuments ausgeführt werden soll, fügen Sie dem Shutdown-Ereignishandler Code hinzu. Weitere Informationen finden Sie unter Ereignisse in Office-Projekten.

Grundlegendes zum Entwurf der generierten Klassen

In Projekten, die auf .NET Framework 3.5 abzielen, leiten die generierten Klassen die meisten Member und das Verhalten von den folgenden Hostelementklassen in der Visual Studio Tools for Office-Laufzeit ab: 

  • ThisDocument: Wird von Microsoft.Office.Tools.Word.Document abgeleitet.

  • ThisWorkbook: Wird von Microsoft.Office.Tools.Excel.Workbook abgeleitet.

  • Sheetn: Wird von Microsoft.Office.Tools.Excel.Worksheet abgeleitet.

Hostelemente sind Typen, die sich am Anfang der Objektmodellhierarchien in Office-Projekten befinden, und sie erweitern das Verhalten entsprechender Objekte in den primären Office-Interopassemblys (PIAs). Weitere Informationen zu Hostelementen finden Sie unter Übersicht über Hostelemente und Hoststeuerelemente.

In Projekten, die auf .NET Framework 4 abzielen, sind die Hostelementtypen in der Visual Studio Tools for Office-Laufzeit Schnittstellen, daher können die generierten Klassen ihre Implementierung nicht von ihnen ableiten. Stattdessen leiten die generierten Klassen die meisten ihrer Member von den folgenden Basisklassen ab:

Diese Basisklassen leiten alle Aufrufe an ihre Member zu internen Implementierungen der entsprechenden Hostelementschnittstellen in der Visual Studio Tools for Office-Laufzeit um. Wenn Sie z. B. die Protect-Methode der ThisDocument-Klasse aufrufen, leitet die Microsoft.Office.Tools.Word.DocumentBase-Klasse diesen Aufruf an die interne Implementierung der Microsoft.Office.Tools.Word.Document-Schnittstelle in der Visual Studio Tools for Office-Laufzeit um. Weitere Informationen zu den Unterschieden in der Visual Studio Tools for Office-Laufzeit für Projekte mit der Zielversion .NET Framework 3.5 und .NET Framework 4 finden Sie unter Übersicht über die Visual Studio Tools for Office-Laufzeit.

Zugreifen auf das Objektmodell der Hostanwendung

Wenn Sie auf das Objektmodell der Hostanwendung zugreifen möchten, verwenden Sie Member der generierten Klasse im Projekt. Jede dieser Klassen entspricht einem Objekt im Objektmodell von Excel oder Word, und sie enthalten einen Großteil derselben Eigenschaften, Methoden und Ereignisse. Die ThisDocument-Klasse in einem Projekt auf Dokumentebene für Word stellt beispielsweise einen Großteil derselben Member wie das Microsoft.Office.Interop.Word.Document-Objekt im Word-Objektmodell bereit.

Im folgenden Codebeispiel wird gezeigt, wie Sie mithilfe des Word-Objektmodells das Dokument speichern, das Teil der Anpassung auf Dokumentebene ist. Dieses Beispiel soll in der ThisDocument-Klasse ausgeführt werden.

Me.Save()
this.Save();

Sie können dieselbe Aufgabe auch außerhalb der ThisDocument-Klasse ausführen, indem Sie mithilfe des Globals-Objekts auf die ThisDocument-Klasse zugreifen. Diesen Code können Sie beispielsweise einer Codedatei eines Aktionsbereichs hinzufügen, wenn Sie eine Schaltfläche Speichern in die Benutzeroberfläche des Aktionsbereichs einschließen möchten.

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

Da die ThisDocument-Klasse die meisten Member aus dem Microsoft.Office.Tools.Word.Document-Hostelement abruft, handelt es sich bei der in diesem Code aufgerufenen Save-Methode tatsächlich um die Save-Methode des Microsoft.Office.Tools.Word.Document-Hostelements. Diese Methode entspricht der Save-Methode des Microsoft.Office.Interop.Word.Document-Objekts im Word-Objektmodell.

Weitere Informationen über das Verwenden der Objektmodelle von Word und Excel finden Sie unter Übersicht über das Word-Objektmodell und unter Übersicht über das Excel-Objektmodell

Weitere Informationen über das Globals-Objekt finden Sie unter Globaler Zugriff auf Objekte in Office-Projekten.

Hinzufügen von Steuerelementen zu Dokumenten

Zum Anpassen der Benutzeroberfläche des Dokuments können Sie Windows Forms-Steuerelemente oder Hoststeuerelemente zur Dokumentoberfläche hinzufügen. Sie können Steuerelemente an Daten binden, Informationen vom Benutzer sammeln und auf Benutzeraktionen reagieren, indem Sie verschiedene Gruppen von Steuerelementen kombinieren und Code schreiben.

Hoststeuerelemente sind Klassen, die im Word-Objektmodell und im Excel-Objektmodell einige der Objekte erweitern. Zum Beispiel stellt das Microsoft.Office.Tools.Excel.ListObject-Hoststeuerelement alle Funktionen des Microsoft.Office.Interop.Excel.ListObject-Elements in Excel zur Verfügung. Das Microsoft.Office.Tools.Excel.ListObject-Hoststeuerelement verfügt jedoch auch über zusätzliche Ereignisse und Datenbindungsfähigkeiten.

Weitere Informationen finden Sie unter Übersicht über Hostelemente und Hoststeuerelemente und unter Übersicht über Windows Forms-Steuerelemente in Office-Dokumenten.

Kombinieren von VBA und Anpassungen auf Dokumentebene

Sie können VBA-Code in einem Dokument verwenden, das Teil einer Anpassung auf Dokumentebene ist. Sie können VBA-Code im Dokument von der Anpassungsassembly aus aufrufen, und Sie können außerdem das Projekt so konfigurieren, dass VBA-Code in dem Dokument Code in der Anpassungsassembly aufrufen kann.

Weitere Informationen finden Sie unter Kombinieren von VBA und Anpassungen auf Dokumentebene.

Verwalten von Dokumenten auf einem Server

Sie können verschiedene Aspekte von Anpassungen auf Dokumentebene auf einem Server verwalten, auf dem Microsoft Office Word oder Microsoft Office Excel nicht installiert ist. Zum Beispiel können Sie auf Daten im Datencache des Dokuments zugreifen und diese ändern. Sie können auch die Anpassungsassembly verwalten, die dem Dokument zugeordnet ist. So können Sie beispielsweise die Assembly programmgesteuert aus dem Dokument entfernen, sodass das Dokument den Code nicht mehr ausführt, oder Sie können eine Assembly programmgesteuert an ein Dokument anfügen.

Weitere Informationen finden Sie unter Verwalten von Dokumenten auf einem Server mit der ServerDocument-Klasse.

Anpassen der Benutzeroberfläche von Microsoft Office-Anwendungen

Sie können die Benutzeroberfläche von Word und Excel mithilfe einer Anpassung auf Dokumentebene folgendermaßen anpassen:

Weitere Informationen über das Anpassen der Benutzeroberfläche von Microsoft Office-Anwendungen finden Sie unter Anpassung der Office-Benutzeroberfläche.

Siehe auch

Konzepte

Verwalten von Dokumenten auf einem Server mit der ServerDocument-Klasse

Abrufen von erweiterten Objekten aus systemeigenen Office-Objekten in Anpassungen auf Dokumentebene

Schreiben von Code in Office-Projektmappen

Weitere Ressourcen

Steuerelemente für Office-Dokumente

Kombinieren von VBA und Anpassungen auf Dokumentebene