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 |