Übersicht über das Excel-Objektmodell
Aktualisiert: November 2007
Betrifft |
---|
Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office. Projekttyp
Microsoft Office-Version
Weitere Informationen finden Sie unter Verfügbare Features nach Anwendung und Projekttyp. |
Bei der Entwicklung von Projektmappen für Microsoft Office Excel können Sie mit den Objekten des Excel-Objektmodells interagieren. In diesem Thema werden die wichtigsten Klassen vorgestellt:
Das Objektmodell orientiert sich sehr stark an der Programmoberfläche. Das Application-Objekt stellt die gesamte Anwendung dar, und jedes Workbook-Objekt enthält eine Auflistung von Worksheet-Objekten. Davon ausgehend gibt es als bedeutende Abstraktion das Range-Objekt, das Zellen darstellt und für die Arbeit mit einzelnen Zellen oder Zellgruppen verwendet werden kann.
Visual Studio Tools for Office erweitert viele dieser systemeigenen Objekte zu Hostelementen und Hoststeuerelementen, die in Anpassungen auf Dokumentebene verwendet werden können. Diese Steuerelemente verfügen über einen größeren Funktionsumfang und bieten beispielsweise Datenbindungsfunktionen und Ereignisse. Ein systemeigenes Excel-Microsoft.Office.Interop.Excel.Range-Objekt wird z. B. zu einem Microsoft.Office.Tools.Excel.NamedRange-Steuerelement erweitert, das an Daten gebunden werden kann und Ereignisse verfügbar macht. Weitere Informationen zu Hostelementen und Hoststeuerelementen finden Sie unter Erweiterte Objekte in Projekten auf Dokumentebene.
Dieses Thema enthält eine kurze Übersicht über das Excel-Objektmodell. Informationen zu Ressourcen, in denen Sie mehr über das gesamte Excel-Objektmodell erfahren, finden Sie unter Verwenden der Dokumentation zum Excel-Objektmodell.
Zugreifen auf Objekte in einem Excel-Projekt
Beim Erstellen eines neuen Projekts auf Anwendungsebene für Excel mit Visual Studio Tools for Office wird von Visual Studio automatisch eine Codedatei mit der Bezeichnung ThisAddIn.vb oder ThisAddIn.cs erstellt. Sie können mit Me.Application oder this.Application auf das Anwendungsobjekt zugreifen.
Beim Erstellen eines neuen Excel-Projekts auf Dokumentebene mit Visual Studio Tools for Office haben Sie die Möglichkeit, eine neue Excel-Arbeitsmappe oder ein neues Excel-Vorlagenprojekt zu erstellen. Visual Studio Tools for Office erstellt in Ihrem neuen Excel-Projekt – für Arbeitsblatt- sowie für Vorlagenprojekte – automatisch die folgenden Codedateien.
Visual Basic |
C# |
---|---|
ThisWorkbook.vb |
ThisWorkbook.cs |
Sheet1.vb |
Sheet1.cs |
Sheet2.vb |
Sheet2.cs |
Sheet3.vb |
Sheet3.cs |
Mit der globalen Globals-Klasse können Sie auf ThisWorkbook, Sheet1, Sheet2 oder Sheet3 von außerhalb der jeweiligen Klasse zugreifen. Weitere Informationen hierzu finden Sie unter Globaler Zugriff auf eigene Objekte in Visual Studio Tools for Office-Projekte. Im folgenden Beispiel wird die PrintPreview-Methode von Sheet1 aufgerufen, und zwar unabhängig davon, ob der Code in der Sheet-Klasse oder der Workbook-Klasse platziert wird.
Globals.Sheet1.PrintPreview()
Globals.Sheet1.PrintPreview(missing);
Da die Daten in einem Excel-Dokument in hohem Maße strukturiert sind, ist das Objektmodell hierarchisch und unkompliziert. Excel enthält zahlreiche Objekte, mit denen Sie interagieren können. Als Einstieg in das Objektmodell empfiehlt es sich jedoch, sich zunächst auf eine sehr kleine Teilmenge der verfügbaren Objekte zu konzentrieren. Dazu gehören die folgenden vier Objekte:
Anwendung
Arbeitsmappe
Arbeitsblatt
Bereich
Diese vier Klassen und ihre Member decken einen Großteil der Aufgaben ab, die mit Excel erledigt werden können.
Application-Objekt
Beim Application-Objekt von Excel handelt es sich um die eigentliche Excel-Anwendung. Das Application-Objekt stellt zahlreiche Informationen über die ausgeführte Anwendung, die auf diese Instanz angewendeten Optionen und die derzeit darin geöffneten Benutzerobjekte zur Verfügung.
Hinweis: |
---|
Sie sollten die EnableEvents-Eigenschaft des Application-Objekts in Excel nicht auf false festlegen. Wenn Sie diese Eigenschaft auf false festlegen, kann Excel keine Ereignisse auslösen, auch nicht die Ereignisse von Hoststeuerelementen. |
Workbook-Objekt
Die Microsoft.Office.Interop.Excel.Workbook-Klasse stellt eine einzelne Arbeitsmappe innerhalb der Excel-Anwendung dar.
Visual Studio Tools for Office erweitert die Microsoft.Office.Interop.Excel.Workbook-Klasse durch Bereitstellen der Microsoft.Office.Tools.Excel.Workbook-Klasse, mit der Sie Zugriff auf alle Member der Workbooks-Auflistung erhalten (neben Datenbindungsfunktionen und zusätzlichen Ereignissen).
Worksheet-Objekt
Das Microsoft.Office.Interop.Excel.Worksheet-Objekt ist ein Member der Worksheets-Auflistung. Viele Eigenschaften, Methoden und Ereignisse von Microsoft.Office.Interop.Excel.Worksheet sind mit den Membern der Application-Klasse oder der Microsoft.Office.Interop.Excel.Workbook-Klasse identisch bzw. ähneln diesen.
Excel bietet eine Sheets-Auflistung als Eigenschaft eines Microsoft.Office.Interop.Excel.Workbook-Objekts; es gibt jedoch keine Sheet-Klasse in Excel. Stattdessen handelt es sich bei jedem Member der Sheets-Auflistung entweder um ein Microsoft.Office.Interop.Excel.Worksheet-Objekt oder ein Microsoft.Office.Interop.Excel.Chart-Objekt.
Für eine Anpassung auf Dokumentebene stellt Visual Studio Tools for Office ein Microsoft.Office.Tools.Excel.Worksheet-Hostelement bereit und erstellt drei Instanzen in neuen Projekten: Sheet1, Sheet2 und Sheet3. Der Zugriff auf die Arbeitsblätter kann über den Globals-Verweis erfolgen. Visual Studio Tools for Office erweitert das Microsoft.Office.Interop.Excel.Worksheet-Objekt durch die Bereitstellung des Microsoft.Office.Tools.Excel.Worksheet-Hostelements.
Range-Objekt
Mit dem Microsoft.Office.Interop.Excel.Range-Objekt werden Sie in den Excel-Anwendungen am häufigsten arbeiten. Bevor Sie Änderungen an einer Region in Excel vornehmen können, müssen Sie diese als Range-Objekt ausdrücken und mit den Methoden und Eigenschaften dieses Bereichs arbeiten. Ein Range-Objekt stellt eine Zelle, Zeile, Spalte, eine Auswahl von Zellen, die mindestens einen Zellblock (zusammenhängend oder nicht) enthalten, oder sogar eine Gruppe von Zellen auf mehreren Arbeitsblättern dar.
Für eine Anpassung auf Dokumentebene führt Visual Studio Tools for Office zwei Bereichhoststeuerelemente ein: das Microsoft.Office.Tools.Excel.NamedRange-Steuerelement und das Microsoft.Office.Tools.Excel.XmlMappedRange-Steuerelement. Weitere Informationen zu Hoststeuerelementen finden Sie unter Übersicht über Hostelemente und Hoststeuerelemente.
Erweiterte Objekte in Projekten auf Dokumentebene
Sie sollten sich unbedingt mit den Unterschieden zwischen den systemeigenen Objekten des Excel-Objektmodells und den erweiterten Objekten (Hostelementen und Hoststeuerelementen) vertraut machen, die von Visual Studio Tools for Office bereitgestellt werden. Beide Objekttypen stehen den Projekten auf Dokumentebene zur Verfügung.
Die Unterschiede betreffen die folgenden vier Bereiche:
Entwurfszeit. Wenn Sie zur Entwurfszeit erweiterte Excel-Objekte hinzufügen, werden sie automatisch als Hostelemente und Hoststeuerelemente erstellt. Wenn Sie beispielsweise einem Arbeitsblatt im Designer eine Liste hinzufügen, wird automatisch Code generiert, um die Liste zu einem Microsoft.Office.Tools.Excel.ListObject-Steuerelement zu erweitern.
Laufzeit. Hostelemente werden zur Laufzeit nicht automatisch erstellt. Wenn Sie Arbeitsmappen, Arbeitsblätter oder Diagrammblätter zur Laufzeit hinzufügen, sind sie systemeigene Excel-Objekte und verfügen nicht über die zusätzlichen Funktionen, die Hostelemente bieten. Viele der Hoststeuerelemente können Sie programmgesteuert hinzufügen. Weitere Informationen finden Sie unter Übersicht über Hostelemente und Hoststeuerelemente.
Datenbindung und Ereignisse. Hostelemente und Hoststeuerelemente weisen Datenbindungsfunktionen und Ereignisse auf, die den systemeigenen Objekten nicht zur Verfügung stehen.
Typen. Die systemeigenen Excel-Objekte verwenden die im Microsoft.Office.Interop.Excel-Namespace definierten Typen, während Hostelemente und Hoststeuerelemente die aggregierten Typen verwenden, die im Microsoft.Office.Tools.Excel-Namespace definiert sind.
Verwenden der Dokumentation zum Excel-Objektmodell
Weitere Informationen zu den Klassen, die Sie im Excel-Objektmodell verwenden können, finden Sie in der folgenden Dokumentation:
Willkommen bei der Microsoft Office Excel 2007-Entwicklerreferenz
Willkommen bei der Microsoft Office Excel 2003 VBA-Sprachreferenz
Der erste Link enthält Informationen zu den Klassen und die Schnittstellen in der primären Interopassembly für Excel. Die anderen Links bieten Informationen zum Excel-Objektmodell, wenn es für VBA (Visual Basic for Applications)-Code verfügbar gemacht wird. Jeder Dokumentationssatz hat Vorteile und Nachteile für Entwickler, die Visual Studio Tools for Office verwenden.
Referenz für die primäre Interopassembly
Diese Dokumentation beschreibt alle Typen in der primären Excel-Interopassembly, die Sie in Visual Studio Tools for Office-Projekten verwenden können. Diese Dokumentation hat aber die folgenden Nachteile:
Sie beschreibt nur die Typen in der primären Interopassembly für Excel 2003. Die Beschreibungen der neuen Typen und Member in der primären Interopassembly für Excel 2007 müssen Sie in der VBA-Referenz für Excel 2007 nachschlagen.
Sie stellt derzeit keine Codebeispiele bereit.
VBA-Referenz
Alle Objekte und Member in der VBA-Referenz entsprechen Klassen und Membern in der primären Interopassembly, die Sie in Visual Studio Tools for Office-Projekten verwenden. Zum Beispiel entspricht das Arbeitsblatt-Objekt in der Excel-VBA-Dokumentation der Microsoft.Office.Interop.Excel.Worksheet-Klasse in der primären Interopassembly.
Die VBA-Referenz hat die folgenden Vorteile:
Sie dokumentiert die Objektmodelle sowohl von Excel 2007 als auch von Excel 2003.
Sie stellt Codebeispiele für die meisten Member bereit.
Die VBA-Referenz hat die folgenden Nachteile:
- Sie stellt nur Syntax und Codebeispiele für VBA bereit. Um die Codebeispiele in einem Visual Studio Tools for Office-Projekt zu verwenden, müssen Sie den VBA-Code in Visual Basic oder Visual C# übersetzen.
Zusätzliche Typen in primären Interopassemblys
Die primären Interopassemblys beinhalten zahlreiche Typen, die für VBA nicht verfügbar sind. Diese zusätzlichen Typen helfen dabei, Objekte im COM-basierten Objektmodell von Excel in verwalteten Code zu übersetzen. Sie sind nicht zur direkten Verwendung im Code gedacht.
Weitere Informationen finden Sie unter Overview of Classes and Interfaces in the Office Primary Interop Assemblies.
Siehe auch
Konzepte
Entwicklung von Add-Ins auf Anwendungsebene für Excel
Entwicklung von Anpassungen auf Dokumentebene für Excel
Übersicht über das Word-Objektmodell
Übersicht über Hostelemente und Hoststeuerelemente
Programmgesteuerte Einschränkungen von Hostelementen und Hoststeuerelementen
Optionale Parametern in Office-Projektmappen