VBA-Objektvariablen festlegen - Arbeitsmappen, Arbeitsblätter und mehr

In diesem Tutorial erfahren Sie, wie Sie Objektvariablen mit der Set-Anweisung in VBA definieren.

Definieren von Objektvariablen

Objekte sind der Eckpfeiler von Microsoft Office – ohne Objekte können wir nichts erreichen. In Excel umfassen Objekte die Arbeitsmappen-, Arbeitsblatt- oder Bereichsobjekte. In Microsoft Word sind Beispiele das Document- oder Table-Objekt. Jedes Objekt hat eine Vielzahl von Eigenschaften und Methoden die programmiert werden kann, um das Verhalten dieses Objekts zu steuern.

Deklarieren der Objektvariablen

Bevor wir das Objekt im Code referenzieren und somit das Objekt steuern können, müssen wir das Objekt deklarieren. Wir können dies mit der Dim-Anweisung tun.

123456 Dim wkb als ArbeitsmappeDim wks als ArbeitsblattDim Rng als BereichwdDoc als Dokument dimmenwdTbl als Tabelle dimmenDim shp als Shape

Dies Dim Deklaration kann innerhalb einer Prozedur erfolgen:

oder außerhalb eines Verfahrens auf Modulebene:

Wenn die Variable auf Modulebene (außerhalb der Prozedur) deklariert wird, kann die Variable im gesamten Modul verwendet werden.

Wenn die Objektvariable mit der Public-Anweisung deklariert wird, kann die Variable im gesamten VBA-Projekt verwendet werden:

Wert einstellen

Nachdem Sie das Objekt deklariert haben, müssen Sie dem Objekt einen Wert zuweisen. Dies muss mit dem Set-Anweisung und kann nur innerhalb von a Verfahren.

12345 Sub SetObjects()wkb = ActiveWorkbook setzenSet wks = Sheet1Setze rng = Range("A1:G4")End Sub

Hinweis: Dies unterscheidet sich vom Zuweisen von Werten zu Nicht-Objektvariablen. Sie MÜSSEN die Set-Anweisung verwenden, um das Objekt der Variablen zuzuweisen. Wenn Sie dies nicht tun, erhalten Sie eine Fehlermeldung:

Nachdem Sie dem Objekt einen Wert zugewiesen haben, können Sie Code schreiben, um das Verhalten zu steuern oder das Objekt zu manipulieren.

VBA-Programmierung | Code Generator arbeitet für Sie!

Objektbeispiele in Excel

Arbeitsmappenobjekt

Nachdem Sie eine Arbeitsmappenvariable deklariert haben, können Sie diesem Objekt eine Arbeitsmappe zuweisen und die verfügbaren Eigenschaften und Methoden verwenden, um dieses Objekt zu bearbeiten. Im folgenden Beispiel speichern wir eine Arbeitsmappe.

123456789101112 Unter WorkbookObject()'das Arbeitsmappenobjekt deklarierenDim wkb als Arbeitsmappe'dem Objekt eine nicht gespeicherte Arbeitsmappe zuweisenSet wkb = Workbooks("Book1")'speichere die Arbeitsmappewkb.SaveAs "C:\data\testbook.xlsx"'Arbeitsmappe schließenwkb.close'Denken Sie daran, das Objekt freizugebenSetze wkb = NichtsEnd Sub

Arbeitsblattobjekt

Ebenso können Sie ein Arbeitsblatt oder Arbeitsblätter bearbeiten, nachdem Sie das Arbeitsblatt als Variable deklariert haben. Im folgenden Beispiel benennen wir Sheet1 und Sheet2 um.

12345678910111213 Unter WorksheetObject()Dim wks1 als ArbeitsblattDim wks2 als Arbeitsblatt'Objekte initialisierenSetze wks1 = Sheet1Setze wks2 = Sheet2'die Blätter umbenennenwks1.Name = "Kunden"wks2.Name = "Produkte"'setze die Objekte ins Leerewks1 = Nichtswks2 = NichtsEnd Sub

Sind Sie es leid, nach VBA-Codebeispielen zu suchen? Probieren Sie AutoMacro aus!

Bereichsobjekt

Das Range-Objekt ist eines der nützlichsten Objekte zum Bearbeiten in Excel. Im folgenden Beispiel fetten wir den Bereich A1 bis E1 und formatieren ihn mit einem unteren Rand.

12345678910111213 Sub RangeObject()Dim rng1 als Bereich'Bereich initialisierenSetze rng = Range("A1:E1")'fetten Sie den Bereich und legen Sie den unteren Rand festrng.Font.Bold = TrueMit rng1.Borders(xlEdgeBottom).LineStyle = xlContinuous.Farbindex = 0.TintAndShade = 0.Gewicht = xlDünnEnde mitEnd Sub

Formobjekt

Sie können auch Objektvariablen verwenden, um mit Formen zu arbeiten.

123456789101112 Unter AddShape()shp als Form dimmen'die Form erstellenSet shp = ActiveDocument.Shapes.AddShape(msoShapeSmileyFace, 68.25, 225.75, 136.5, 96#)Mit shp'Farbe und Stil im Inneren ändern.Fill.ForeColor.RGB = RGB(255, 255, 0).Fill.Solid'passen Sie das Lächeln an!.Einstellungen.Element(1) = 0,07181Ende mitEnd Sub
wave wave wave wave wave