Informatik :: VBA :: Felder (Arrays)

Felder (Arrays)

[Allgemeines] [Deklaration] [Zugriff] [Zweidimensionale Felder] [Aufgaben]

Allgemeines

Merke:

Beispiele:


Das Feld jahr besteht aus den 12 Feldelementen jahr(0), jahr(1), ... jahr(10), jahr(11).
Das Feldelement jahr(0) enthält den Wert "Januar", im Feldelement jahr(1) ist die Zeichenkette "Februar" gespeichert usw.
Dabei haben alle Feldelemente den gleichen Datentyp String und damit das Feld den Datentyp String.


Das Feld person besteht aus den 6 Feldelementen person(0), person(1), ... person(4), person(5).
Das Feldelement person(0) enthält den Zahlenwert 1012, im Feldelement person(1) ist die Zeichenkette "Anton" gespeichert usw.
Dabei haben die Feldelemente verschiedene Datentypen und damit das Feld den Datentyp Variant.

Wir wollen uns nur mit Feldern beschäftigen, wo alle Feldelemente den gleichen Datentyp besitzen.


Seitenanfang

Deklaration

Syntax:

Dim feldname(maxindex) As Datentyp

Kennst du ja schon von der Variablendeklaration. Der einzige Unterschied ist, dass man hinter dem Feldnamen in Klammern den Index des letzten Feldelementes angeben muss, damit ausreichend Speicherplatz reserviert wird.

Beispiele:

Dim jahr(11) As String
Dim zahl(99) As Single


Seitenanfang

Zugriff

1. Schreibender Zugriff:

Beispiel 1:

jahr(0) = "Januar"
jahr(1) = "Februar"
  ...
jahr(11) = "Dezember"

Die Zeichenkette "Januar" wird in das Feldelement jahr(0) geschrieben usw.

Beispiel 2:

zahl(0) = Cells(2,1)
zahl(1) = Cells(3,1)
  ...
zahl(99) = Cells(100,1)

Der Wert der Zelle A1 wird in das Feldelement zahl(0) geschrieben usw.
Wie du sicher schon erkannt hast, lässt sich das Beispiel 2 wesentlich verkürzen, indem man eine For-Schleife verwendet. Sie könnte ungefähr so aussehen:

Dim i As Integer
For i = 0 To 99 Step 1
  zahl(i) = Cells(i+2,1)
Next i

2. Lesender Zugriff:

Beispiel 1:

MsgBox ("Er ist im Monat " & jahr(5) & " geboren.")

Es wird der Wert des Feldelementes jahr(5) gelesen und mit dem Text ausgegeben.

Beispiel 2:

Dim i As Integer
For i = 0 To 99 Step 1
  Cells(i+2,1) = zahl(i)
Next i

Alle 100 Werte des Feldes zahl werden der Reihe nach gelesen und in die Zellen A2 bis A101 geschrieben.

Seitenanfang

Zweidimensionale Felder

Um die Daten einer Tabelle zu speichern, benötigt man ein zweidimensionales Feld.

Beispiel:

Dim persdat(3,2) As Variant 'Deklaration
'Speichern
persdat(0,0) = 1010
persdat(0,1) = "Ulf"
persdat(0,2) = "Meier"
persdat(1,0) = 1011
persdat(1,1) = "Ria"
persdat(1,2) = "Garbe"
persdat(2,0) = 1012
persdat(2,1) = "Leo"
persdat(2,2) = "Kunz"
persdat(3,0) = 1013
persdat(3,1) = "Brit"
persdat(3,2) = "Heinze"


Seitenanfang

Aufgaben