VBA – Objekt-Array

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on Dezember 12, 2022

In diesem Tutorial zeigen wir Ihnen, wie Sie Objekt-Arrays in VBA erstellen und verwenden können.

In VBA sind Arrays Variablen, die mehrere Werte speichern. Sie können VBA-Objekte in Arrays auf die gleiche Weise speichern wie alle anderen Daten.

 

Objekt-Arrays deklarieren

In diesem Beispiel deklarieren wir ein Array von VBA-Arbeitsblättern:

Dim arWks(3) As Worksheet

Auffüllen eines statischen Objekt-Arrays

Deklarieren Sie das Objekt-Array als statisch, dann können Sie das Array mit den Blättern, die Sie aus Ihrer Arbeitsmappe auswählen, auffüllen.

Sub TestObjArray() 
'das Array als Arbeitsblatt-Array definieren 
   Dim arWks(1 To 3) As Worksheet
'3 Arbeitsblätter in das Array einfügen
   set arWks(1) = Sheets(1)
   set arWks(2) = Sheets(2)
   Set arWks(3) = Sheets(3)
End Sub

Auffüllen eines dynamischen Objekt-Arrays

Bevor Sie dem Objekt-Array die Größe zuweisen, können Sie ihn als dynamisch deklarieren und dann die Blätter in der Arbeitsmappe zählen.

Sub TestObjArray()
'Das Array als Arbeitsblatt-Array definieren
   Dim arWks() As Worksheet
'Zählen, wie viele Arbeitsblätter in der Datei sind und das Array erneut verkleinern
   Dim n As Integer
   Dim i As Integer
'die Blätter zählen und die Anzahl um eins reduzieren, um die Array-Grenzen festzulegen
   n = Application.Sheets.Count - 1
   ReDim arWks(n)
'Das Arbeitsblatt-Array mit allen Blättern der Arbeitsmappe auffüllen
   For i = LBound(arWks) to UBound(arWks)
     Set arWks(i) = ActiveWorkbook.Sheets(i + 1)
   Next i
End Sub

Im obigen Beispiel deklarieren wir zunächst das Arbeitsblatt-Array. Wir bestimmen dann die Anzahl der Blätter in der Arbeitsmappe und weisen diesen Wert minus eins dem Array-UBound zu. Dies ist auf die Tatsache zurückzuführen, dass das Array-LBound mit 0 beginnt. Schließlich durchlaufen wir die Blätter in einer Schleife und fügen jedes Blatt dem Array hinzu.

Verwendung des Objekt-Arrays in VBA-Code

Sobald wir das Worksheet-Array aufgefüllt haben, können wir es mit VBA in einer Schleife durchlaufen.

Sub TestObjArray() 
'Das Array als Arbeitsblatt-Array definieren 
   Dim arWks() As Worksheet 
'Zählen, wie viele Arbeitsblätter in der Datei enthalten sind und das Array erneut verkleinern
   Dim n As Integer 
   Dim i As Integer 
'Die Blätter zählen und die Anzahl um eins reduzieren, um die Array-Grenzen festzulegen 
   n = Application.Sheets.Count - 1 
   ReDim arWks(n) 
'das Arbeitsblatt-Array mit allen Blättern der Arbeitsmappe auffüllen
   For i = LBound(arWks) to UBound(arWks) 
      Set arWks(i) = ActiveWorkbook.Sheets(i + 1) 
   Next i
'Etwas mit jedem Blatt im Array machen
   For i = LBound(arWks) To UBound(arWks) 
      arWks(i).Range("A1:H1").Font.Bold = True 
   Next i
End Sub

Im obigen Beispiel durchlaufen wir das Array in einer Schleife und setzen die Schrift der ersten Zeile jedes Blattes in diesem Array auf fett.

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