VBA-Objektvariablen definieren – Arbeitsmappen und -blätter & mehr
In this Article
In diesem Tutorial lernen Sie, wie Sie Objektvariablen mit der Set-Anweisung in VBA definieren können.
Objektvariablen definieren
Objekte sind der Grundstein von Microsoft Office. Ohne Objekte können wir nichts erreichen. In Excel gehören zu den Objekten die Arbeitsmappe, das Arbeitsblatt oder die Bereichsobjekte. In Microsoft Word sind es beispielsweise das Dokument oder das Tabellenobjekt. Jedes Objekt hat eine Vielzahl von Eigenschaften und Methoden, die programmiert werden können, um sein Verhalten zu steuern.
Objektvariablen deklarieren
Bevor wir im Code auf das Objekt verweisen und es somit steuern können, müssen wir das es deklarieren. Dies können wir mit der Dim-Anweisung tun.
Dim arbMappe as Workbook
Dim arbBlatt as Worksheet
Dim Bereich as Range
Dim wdDok as Document
Dim wdTbl as Table
Dim form as Shape
Diese Dim-Deklaration kann innerhalb einer Prozedur auftreten:
oder außerhalb einer Prozedur auf der Modulebene:
Wenn die Variable auf Modulebene (außerhalb der Prozedur) deklariert wird, kann diese im gesamten Modul verwendet werden.
Wenn die Objektvariable mit der Public-Anweisung deklariert wird, kann diese im gesamten VBA-Projekt verwendet werden:
Den Wert festlegen
Nachdem Sie das Objekt deklariert haben, müssen Sie ihm einen Wert zuweisen. Dies muss mit der Set-Anweisung geschehen und kann nur innerhalb einer Prozedur durchgeführt werden.
Sub ObjekteBelegen()
Set arbMappe = ActiveWorkbook
Set arbBlatt = Tabelle1
Set Bereich = Range("A1:G4")
End Sub
Hinweis: Dies ist etwas anderes als die Zuweisung von Werten an Nicht-Objektvariablen. Sie MÜSSEN die Set-Anweisung verwenden, um das Objekt der Variablen zuzuweisen. Wenn Sie dies nicht tun, erhalten Sie eine Fehlermeldung:
Sobald Sie dem Objekt einen Wert zugewiesen haben, können Sie Code schreiben, um das Objektsverhalten zu steuern oder das Objekt selbst zu bearbeiten.
Objektbeispiele in Excel
Das Arbeitsmappenobjekt
Sobald Sie eine Arbeitsmappenvariable deklariert haben, können Sie diesem Objekt eine Arbeitsmappe zuweisen und die verfügbaren Eigenschaften und Methoden verwenden, um es zu bearbeiten. Im folgenden Beispiel werden wir eine Arbeitsmappe speichern.
Sub ArbeitsmappenObjekt()
'Arbeitmappenobjekt deklarieren
Dim arbMappe as Workbook
'Dem Objekt eine nicht gespeicherte Arbeitsmappe zuweisen
Set arbMappe = Workbooks("Mappe1")
'Die Arbeitsmappe speichern
arbMappe.SaveAs "C:Datentestmappe.xlsx"
'die Arbeitsmappe schließen
arbMappe.close
'Nicht vergessen, das Objekt zu leeren
Set arbMappe = Nothing
End Sub
Das Arbeitsblattobjekt
Auf ähnliche Weise können Sie ein Arbeitsblatt oder mehrere Arbeitsblätter manipulieren, nachdem Sie das Arbeitsblatt als Variable deklariert haben. Im folgenden Beispiel benennen wir Tabelle1 und Tabelle2 um.
Sub ArbeitsblattObjekt()
Dim arbBlatt1 As Worksheet
Dim arbBlatt2 As Worksheet
'Die Objekte initialisieren
Set arbBlatt1 = Tabelle1
Set arbBlatt2 = Tablle2
'die Blätter umbenennen
arbBlatt1.Name = "Kunden"
arbBlatt2.Name = "Produkte"
'Die Objekte auf Nothing setzen
Set arbBlatt1 = Nothing
Set arbBlatt2 = Nothing
End Sub
Das Bereichsobjekt
Das Bereichsobjekt ist eines der nützlichsten Objekte, die in Excel bearbeitet werden können. Im folgenden Beispiel fassen wir den Bereich A1 bis E1 zusammen und formatieren ihn mit einem unteren Rand.
Sub BereichsObjekt()
Dim Bereich As Range
'Den Bereich initialisieren
Set Bereich = Range("A1:E1")
'Den Bereich auf Fettschrift setzen und den unteren Rand festlegen
Bereich.Font.Bold = True
With Bereich.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
Das Shape-Objekt
Sie können auch Objektvariablen verwenden, um mit Formen zu arbeiten.
Sub FormEinfuegen()
Dim form As Shape
'Die Form erstellen
Set form = ActiveSheet.Shapes.AddShape(msoShapeSmileyFace, 68.25, 225.75, 136.5, 96#)
With form
'Die Innenfarbe und den Stil ändern
.Fill.ForeColor.RGB = RGB(255, 255, 0)
.Fill.Solid
'Das Smiley anpassen!
.Adjustments.Item(1) = 0.07181
End With
End Sub