VBA-Objektvariablen definieren – Arbeitsmappen und -blätter & mehr

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on August 6, 2023

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:

Objektvariablen auf Prozedurebene deklarieren

oder außerhalb einer Prozedur auf der Modulebene:

Objektvariablen auf Modulebene deklarieren

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:

Objektvariablen auf Projektebene deklarieren

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:

Fehler bei Wertzuweisung einer Objektvariablen

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
vba-free-addin

Add-In für VBA-Code-Beispiele

Auf alle Code-Beispiele aus unserer Website einfach zugreifen.

Navigieren Sie einfach zum Menü, klicken Sie darauf und der Code wird direkt in Ihr Modul eingefügt. .xlam add-in.

(Keine Installation erforderlich!)

Kostenloser Download

Return to VBA Code Examples