Excel VBA-Objekte beziehen sich auf einzelne „Entitäten“, die aus Code und Daten bestehen. Die Excel-Anwendung selbst ist ein Objekt, ebenso wie Arbeitsmappen, Arbeitsblätter, Zellbereiche und Formen. Jedes Objekt hat zugehörige Eigenschaften und Methoden. Objekte können auch andere Objekte enthalten und das Sammlungsobjekt wird verwendet, um auf eine Gruppe derselben Excel-Objekte zu verweisen.
In diesem Tutorial werden wir uns einige häufig verwendete Excel-Objekte ansehen.
Anwendungsobjekt
Das Anwendungsobjekt bezieht sich auf die gesamte Excel-Anwendung. Das Anwendungsobjekt enthält das Arbeitsmappenobjekt.
Der folgende Code verwendet die WindowState-Eigenschaft des Application-Objekts, um das Excel-Fenster auf die maximal verfügbare Größe festzulegen:
12345 | Sub MaximizingTheExcelWindow()Application.WindowState = xlMaximizedEnd Sub |
Arbeitsmappen-Objekt
Das Objekt Workbooks bezieht sich auf die Auflistung aller aktuell geöffneten Excel-Arbeitsmappen.
Der folgende Code verwendet die Methode Workbooks.Add, um eine neue Arbeitsmappe zu erstellen und der Sammlung hinzuzufügen:
12345 | Sub AddingANewWorkbookToTheWorkbooksCollection()Arbeitsmappen.HinzufügenEnd Sub |
Sie können auf eine einzelne Arbeitsmappe in der Workbooks-Auflistung über ihre Indexnummer oder ihren Namen zugreifen. Sie können also auf eine Arbeitsmappe namens ExcelWb verweisen, indem Sie Workbooks ("ExcelWB") verwenden.
Arbeitsmappenobjekt
Das Arbeitsmappenobjekt ist Teil der Workbooks-Auflistung. Das Arbeitsmappenobjekt enthält die Arbeitsblattsammlung (Arbeitsblätter) und die Arbeitsblattsammlung (Arbeitsblätter, Diagrammblätter und Makroblätter). Das ActiveWorkbook-Objekt verweist auf die aktive Arbeitsmappe.
Der folgende Code verwendet die ActiveWorkbook.Save-Methode, um die aktuelle aktive Arbeitsmappe zu speichern:
12345 | Unter SavingTheWorkbook()ActiveWorkbook.SpeichernEnd Sub |
Tabellenobjekt
Das Sheets-Objekt bezieht sich auf die Sammlung aller Arbeitsblätter, Diagrammblätter und Makroblätter in einer Arbeitsmappe. Der folgende Code verwendet die Sheets.Add-Methode, um ein neues Arbeitsblatt namens ExtraSheet nach dem letzten Arbeitsblatt in der Arbeitsmappe hinzuzufügen:
123456 | Unter HinzufügenANewSheet()ActiveWorkbook.Sheets.Add(After:=ActiveWorkbook.Worksheets(Worksheets.Count), Count:=1, _Typ:=xlWorksheet).Name = "ExtraSheet"End Sub |
Beachten Sie die Syntax der Sheets.Add-Methode:
Tabellen.Hinzufügen(Vor, Nach, Zählen, Typ) wo:
-Before ist optional und gibt an, dass das neue Blatt vor einem vorhandenen Blatt hinzugefügt werden soll.
-After ist optional und gibt an, dass das neue Blatt nach einem vorhandenen Blatt hinzugefügt werden soll.
-Count ist optional und gibt die Anzahl der hinzuzufügenden Blätter an.
-Type ist optional und gibt den Blatttyp an. xlWorksheet würde ein neues Arbeitsblatt hinzufügen, xlChart würde ein neues Diagrammblatt hinzufügen und xlExcel4MacroSheet oder xlExcel4IntlMacroSheet würde ein neues Makroblatt hinzufügen. Wenn es leer ist, wird das Standard-xlWorksheet verwendet.
Sie können auf ein einzelnes Blatt in der Sheets-Auflistung über seine Indexnummer oder seinen Namen zugreifen. Sie können also auf ein Arbeitsblatt namens SheetOne verweisen, indem Sie Sheets ("SheetOne") verwenden.
Arbeitsblätter-Objekt
Das Worksheets-Objekt bezieht sich auf die Auflistung aller Arbeitsblätter in einer Arbeitsmappe. Der folgende Code verwendet die Methode Worksheets.Add, um ein neues Arbeitsblatt hinzuzufügen:
12345 | Unter HinzufügenANewSheet()Arbeitsblätter.HinzufügenEnd Sub |
Sie können auf ein einzelnes Blatt in der Worksheets-Auflistung über seine Indexnummer oder seinen Namen zugreifen. Sie können also auf ein Arbeitsblatt namens SheetTwo verweisen, indem Sie Worksheets ("SheetTwo") verwenden.
Arbeitsblattobjekt
Das Arbeitsblattobjekt ist Teil der Worksheets-Auflistung. Das Arbeitsblattobjekt enthält das Bereichsobjekt und andere Objekte. Das ActiveSheet-Objekt verweist auf das aktive Blatt.
Der folgende Code ändert die Seitenausrichtung des aktiven Blatts ins Querformat:
12345 | Sub ChangingOrientationToLandscape()ActiveSheet.PageSetup.Orientation = xlLandscapeEnd Sub |
Beachten Sie, dass das Sheet-Objekt das PageSetup-Objekt enthält und seine Ausrichtungseigenschaft auf xlLandscape festgelegt ist.
Bereichsobjekt
Das Range-Objekt kann auf eine einzelne Zelle oder eine Gruppe von Zellen in einem Arbeitsblatt verweisen. Der folgende Code zeigt Ihnen, wie Sie die Range.Select-Methode verwenden, um die Zellen A1:B1 auszuwählen:
12345 | UnterauswahlARange()Bereich("A1:B1").WählenEnd Sub |
Shapes-Objekt
Das Shapes-Objekt bezieht sich auf die Auflistung aller Formen in einem Arbeitsblatt. Der folgende Code würde alle Formen auf dem ActiveSheet auswählen:
12345 | Sub SelectingAllTheShapes()ActiveSheet.Shapes.SelectAllEnd Sub |
Formobjekt
Das Shape-Objekt ist Teil der Shapes-Auflistung. Der folgende Code würde eine abgerundete Rechteckform erstellen und dann die name-Eigenschaft des Shape-Objekts festlegen:
123456789 | Unter UsingTheShapeObject()Mit Arbeitsblättern(1).Shapes.AddShape(msoShapeRoundedRectangle, _200, 100, 80, 80).Name = "Ein abgerundetes Rechteck"Ende mitEnd Sub |
Excel VBA-Objektmodell
Das VBA-Objektmodell von Excel beschreibt die Hierarchie aller Objekte, die Sie in Excel verwenden können. Mit dem Workbooks-Objekt können Sie beispielsweise indirekt oder direkt auf alle anderen Objekte verweisen. Der folgende Code zeigt Ihnen, wie Sie Zelle A1 mithilfe der hierarchischen Struktur auswählen:
12345 | Unter UsingTheHierachicalStructure()Workbooks("Book1").Worksheets("Sheet1").Range("A1").SelectEnd Sub |
Deklarieren und Zuweisen einer Objektvariablen
Mit den Schlüsselwörtern Dim und Set können Sie ein Objekt deklarieren und einer Variablen zuweisen.
Zum Beispiel:
12 | Dim ws als ArbeitsblattSet ws = ActiveWorkbook.ActiveSheet |
Der folgende Code zeigt Ihnen, wie Sie ein Range-Objekt deklarieren und einer Variablen zuweisen:
12345678910111213141516 | Sub AssigningARangeToAVariable()rngOne als Objekt dimmenSetze rngOne = Range("A1:C1")rngOne.Font.Bold = TrueMit rngOne.Font.Bold = True.Font.Name = "Calibri".Schriftgröße = 9.Schriftfarbe = RGB(35, 78, 125).Innen.Farbe = RGB(205, 224, 180).Borders(xlEdgeBottom).LineStyle = xlContinuousEnde mitEnd Sub |
Das Ergebnis ist:
Es ist wichtig zu verstehen, wie Objekte funktionieren, um VBA zu beherrschen. Mehr erfahren Sie in unserem interaktiven VBA-Tutorial.