Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn Sie Microsoft Office Word oder Microsoft Office Excel mithilfe einer Anpassung auf Dokumentebene erweitern, können Sie die folgenden Aufgaben ausführen:
Automatisieren Sie die Anwendung mithilfe des Objektmodells.
Fügen Sie der Oberfläche des Dokuments Steuerelemente hinzu.
Rufen Sie visual Basic for Applications (VBA)-Code im Dokument aus der Anpassungsassembly auf.
Aufrufen von Code in der Anpassungsbibliothek aus VBA.
Verwalten Sie bestimmte Aspekte des Dokuments, während es sich auf einem Server befindet, auf dem Microsoft Office nicht installiert ist.
Passen Sie die Benutzeroberfläche der Anwendung an.
Gilt für: Die Informationen in diesem Thema gelten für Projekte auf Dokumentebene für Excel und Word. Weitere Informationen finden Sie unter Funktionen verfügbar nach Office-Anwendung und Projekttyp.
Einige Aspekte des Schreibens von Code in Projekten auf Dokumentebene unterscheiden sich von anderen Projekttypen in Visual Studio. Durch die Art und Weise, wie die Office-Objektmodelle dem verwalteten Code verfügbar gemacht werden, werden viele dieser Unterschiede verursacht. Weitere Informationen finden Sie unter Schreiben von Code in Office-Lösungen.
Allgemeine Informationen zu Anpassungen auf Dokumentebene und anderen Arten von Lösungen, die Sie mithilfe der Office-Entwicklungstools in Visual Studio erstellen können, finden Sie unter VSTO (Übersicht über die Entwicklung von Office-Lösungen).
Verwenden der generierten Klassen in Projekten auf Dokumentebene
Wenn Sie ein Projekt auf Dokumentebene erstellen, generiert Visual Studio automatisch eine Klasse im Projekt, mit der Sie mit dem Schreiben des Codes beginnen können. Visual Studio generiert verschiedene Klassen für Word und Excel:
In Projekten auf Dokumentebene für Word wird die Klasse standardmäßig aufgerufen
ThisDocument.Projekte auf Dokumentebene für Excel verfügen über mehrere generierte Klassen: eine für die Arbeitsmappe selbst und eine für jedes Arbeitsblatt. Standardmäßig weisen diese Klassen die folgenden Namen auf:
ThisWorkbookSheet1Sheet2Sheet3
Die generierte Klasse enthält Ereignishandler, die aufgerufen werden, wenn das Dokument geöffnet oder geschlossen wird. Um Code auszuführen, wenn das Dokument geöffnet wird, fügen Sie dem
StartupEreignishandler Code hinzu. Um Code direkt vor dem Schließen des Dokuments auszuführen, fügen Sie demShutdownEreignishandler Code hinzu. Weitere Informationen finden Sie unter "Ereignisse in Office-Projekten".
Verstehen Sie das Design der generierten Klassen
Bei Projekten, die auf .NET Framework 4 oder .NET Framework 4.5 abzielen, sind die Hostelementtypen in den Visual Studio-Tools für Office-Laufzeit schnittstellen, sodass die generierten Klassen ihre Implementierung nicht von ihnen ableiten können. Stattdessen leiten die generierten Klassen die meisten ihrer Member aus den folgenden Basisklassen ab:
ThisDocument: abgeleitet von DocumentBase.ThisWorkbook: abgeleitet von WorkbookBase.Sheetn: abgeleitet von WorksheetBase.Diese Basisklassen leiten alle Aufrufe an ihre Mitglieder an interne Implementierungen der entsprechenden Hostelement-Schnittstellen in der Visual Studio Tools for Office-Laufzeit um. Wenn Sie beispielsweise die Protect Methode der
ThisDocumentKlasse aufrufen, leitet die DocumentBase Klasse diesen Aufruf an die interne Implementierung der Document Schnittstelle in den Visual Studio-Tools für Office-Laufzeit um.
Zugreifen auf das Objektmodell der Hostanwendung
Um auf das Objektmodell der Hostanwendung zuzugreifen, verwenden Sie Member der generierten Klasse in Ihrem Projekt. Jede dieser Klassen entspricht einem Objekt im Objektmodell von Excel oder Word und enthält die meisten der gleichen Eigenschaften, Methoden und Ereignisse. Beispielsweise stellt die ThisDocument Klasse in einem Projekt auf Dokumentebene für Word die meisten der gleichen Elemente wie das Document Objekt im Word-Objektmodell bereit.
Das folgende Codebeispiel zeigt, wie Sie das Word-Objektmodell verwenden, um das Dokument zu speichern, das Teil einer Anpassung auf Dokumentebene für Word ist. Dieses Beispiel soll aus der ThisDocument Klasse ausgeführt werden.
Um das Gleiche von außerhalb der ThisDocument Klasse zu tun, verwenden Sie das Globals Objekt, um auf die ThisDocument Klasse zuzugreifen. Sie können diesen Code beispielsweise einer Codedatei für den Aktionsbereich hinzufügen, wenn Sie eine Schaltfläche " Speichern " in die Ui des Aktionsbereichs einfügen möchten.
Da die ThisDocument Klasse den größten Teil seiner Member aus dem Document Hostelement abruft, ist die Save Methode, die in diesem Code aufgerufen wird, wirklich die Save Methode des Document Hostelements. Diese Methode entspricht der Save Methode des Document Objekts im Word-Objektmodell.
Weitere Informationen zur Verwendung der Objektmodelle von Word und Excel finden Sie in der Übersicht über das Word-Objektmodell und die Excel-Objektmodellübersicht.
Weitere Informationen zum Globals Objekt finden Sie unter globalen Zugriff auf Objekte in Office-Projekten.
Hinzufügen von Steuerelementen zu Dokumenten
Um die Benutzeroberfläche des Dokuments anzupassen, können Sie der Dokumentoberfläche Windows Forms-Steuerelemente oder Hoststeuerelemente hinzufügen. Durch die Kombination verschiedener Steuerelemente und schreiben von Code können Sie die Steuerelemente an Daten binden, Informationen vom Benutzer sammeln und auf Benutzeraktionen reagieren.
Hoststeuerelemente sind Klassen, die einige der Objekte im Word- und Excel-Objektmodell erweitern. Beispielsweise stellt das ListObject Hoststeuerelement alle Funktionen der ListObject In Excel bereit. Das ListObject Hoststeuerelement verfügt jedoch auch über zusätzliche Ereignisse und Datenbindungsfunktionen.
Weitere Informationen finden Sie unter Übersicht über Hostelemente und Hoststeuerelemente und Übersicht über Windows Forms-Steuerelemente in Office-Dokumenten.
Kombinieren von VBA- und Dokumentebenenanpassungen
Sie können VBA-Code in einem Dokument verwenden, das Teil einer Anpassung auf Dokumentebene ist. Sie können VBA-Code im Dokument aus der Anpassungsassembly aufrufen, und Sie können Ihr Projekt auch so konfigurieren, dass der VBA-Code im Dokument Code in der Anpassungsassembly aufrufen kann.
Weitere Informationen finden Sie unter Kombinieren von VBA- und Dokumentebenenanpassungen.
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 sind. Sie können beispielsweise auf Daten im Datencache des Dokuments zugreifen und diese ändern. Sie können auch die Anpassungsassembly verwalten, die dem Dokument zugeordnet ist. Sie können beispielsweise die Assembly programmgesteuert aus dem Dokument entfernen, sodass das Dokument den Code nicht mehr ausführt, oder Sie können programmgesteuert eine Assembly an ein Dokument anfügen.
Weitere Informationen finden Sie unter Verwalten von Dokumenten auf einem Server mithilfe der ServerDocument-Klasse.
Anpassen der Benutzeroberfläche von Microsoft Office-Anwendungen
Sie können die Benutzeroberfläche von Word und Excel auf folgende Weise anpassen, indem Sie eine Anpassung auf Dokumentebene verwenden:
Fügen Sie Host-Steuerelemente oder Windows Forms-Steuerelemente zur Dokumentoberfläche hinzu.
Weitere Informationen finden Sie unter Automatisieren von Word mithilfe erweiterter Objekte, Automatisieren von Excel mithilfe erweiterter Objekte und Der Übersicht über Windows Forms-Steuerelemente in Office-Dokumenten.
Fügen Sie dem Dokument einen Aktionsbereich hinzu.
Weitere Informationen finden Sie im Übersichtsbereich "Aktionen".
Fügen Sie dem Menüband benutzerdefinierte Registerkarten hinzu.
Weitere Informationen finden Sie in der Menübandübersicht.
Fügen Sie benutzerdefinierte Gruppen zu einer integrierten Registerkarte im Menüband hinzu.
Weitere Informationen finden Sie unter So passen Sie einen integrierten Tab an.
Weitere Informationen zum Anpassen der Benutzeroberfläche von Microsoft Office-Anwendungen finden Sie unter Anpassung der Office-Benutzeroberfläche.
Abrufen erweiterter Objekte aus eingebauten Office-Objekten in Dokumentanpassungen
Viele Ereignishandler für Office-Ereignisse erhalten ein systemeigenes Office-Objekt, das die Arbeitsmappe, das Arbeitsblatt oder das Dokument darstellt, das das Ereignis ausgelöst hat. In einigen Fällen sollten Sie Code nur ausführen, wenn die Arbeitsmappe oder das Dokument in Der Anpassung auf Dokumentebene das Ereignis ausgelöst hat. In einer Anpassung auf Dokumentebene für Excel können Sie z. B. Code ausführen, wenn der Benutzer eines der Arbeitsblätter in der angepassten Arbeitsmappe aktiviert, aber nicht, wenn der Benutzer ein Arbeitsblatt in einer anderen Arbeitsmappe aktiviert, die gleichzeitig geöffnet ist.
Wenn Sie über ein systemeigenes Office-Objekt verfügen, können Sie testen, ob dieses Objekt in ein Hostelement oder Hoststeuerelement in einer Anpassung auf Dokumentebene erweitert wurde. Hostelemente und Hoststeuerelemente sind Typen, die von den Visual Studio-Tools für Office-Laufzeit bereitgestellt werden, die Funktionen zu Objekten hinzufügen, die nativ in den Word- oder Excel-Objektmodellen (als systemeigene Office-Objekte bezeichnet) vorhanden sind. Zusammen werden Hostelemente und Hoststeuerelemente auch als erweiterte Objekte bezeichnet. Weitere Informationen zu Hostelementen und Hoststeuerelementen finden Sie unter Übersicht über Hostelemente und Hoststeuerelemente.
Grundlegendes zu den Methoden GetVstoObject und HasVstoObject
Verwenden Sie zum Testen eines systemeigenen Office-Objekts die HasVstoObject Methoden und GetVstoObject Methoden in Ihrem Projekt:
Verwenden Sie die
HasVstoObjectMethode, wenn Sie ermitteln möchten, ob das systemeigene Office-Objekt ein erweitertes Objekt in Ihrer Anpassung aufweist. Diese Methode gibt "true " zurück, wenn das systemeigene Office-Objekt ein erweitertes Objekt aufweist, andernfalls "false ".Verwenden Sie die
GetVstoObjectMethode, wenn Sie das erweiterte Objekt für ein systemeigenes Office-Objekt abrufen möchten. Diese Methode gibt ein ListObject, Workbook, , Worksheetoder Document Objekt zurück, wenn das angegebene systemeigene Office -Objekt eins hat.GetVstoObjectAndernfalls wird NULL zurückgegeben. Die Methode gibt zum BeispielGetVstoObjecteinen Document zurück, wenn das angegebene Document das zugrunde liegende Objekt für das Dokument in Ihrem Word-Dokumentenprojekt ist.In Projekten auf Dokumentebene können Sie die
GetVstoObjectMethode nicht zum Erstellen eines neuen Workbook, Worksheetoder Document Hostelements zur Laufzeit verwenden. Sie können diese Methode nur verwenden, um auf vorhandene Hostelemente zuzugreifen, die zur Entwurfszeit in Ihrem Projekt generiert werden. Wenn Sie zur Laufzeit neue Hostelemente erstellen möchten, müssen Sie ein VSTO-Add-In-Projekt entwickeln. Weitere Informationen finden Sie unter "Programmgesteuerte Einschränkungen von Hostelementen und Hoststeuerelementen" und"Erweitern von Word-Dokumenten und Excel-Arbeitsmappen in VSTO-Add-Ins zur Laufzeit".
Verwenden der Methoden GetVstoObject und HasVstoObject
Um die Methoden HasVstoObject und GetVstoObject aufzurufen, verwenden Sie die Methode Globals.Factory.GetVstoObject oder Globals.Factory.HasVstoObject und übergeben Sie das native Word- oder Excel-Objekt (z. B. ein Document oder Worksheet), das Sie testen möchten.