Anweisung ReDim

Deklariert eine Variable oder ein Array.

Syntax:

[ReDim]Dim VarName [(Anfang To Ende)] [As VarTyp][, VarName2 [(Anfang To Ende)] [As VarTyp][,...]]

Optional können Sie das Schlüsselwort Preserve als einen Parameter hinzufügen, um die Inhalte des neu zu dimensionierenden Arrays beizubehalten.

Parameter:

VarName: Ein beliebiger Variablen- oder Array-Name.

Anfang, Ende: Numerische Werte oder Konstanten zwischen -32768 und 32767, die die Anzahl der Elemente (AnzahlElemente=(Ende-Anfang)+1) sowie den Indexbereich definieren.

start und end können numerische Ausdrücke sein, wenn ReDim auf Prozeduren-Ebene verwendet wurde.

VarType:Schlüsselwort zur Deklaration des Datentyps einer Variable.

Schlüsselwort: Variablentyp

Bool: Boolesche Variable (True, False)

Date: Date-Variable (Datum)

Double: Gleitkommavariable mit doppelter Präzision (1,79769313486232 x 10E308 -4,94065645841247 x 10E-324)

Integer: Integer-Variable (-32768 - 32767)

Long: Long Integer-Variable (-2.147.483.648 -2.147.483.647)

Object: Objektvariable (kann später nur mit Set definiert werden!)

[Single]: Gleitkommavariable mit einfacher Präzision (3,402823 x 10E38 -1,401298 x 10E-45). Ist kein Schlüsselwort angegeben, werden Variablen automatisch als Typ Single definiert, sofern sie nicht einem mit DefBool, DefVar o. ä. festgelegten Namensbereich angehören.

String: String-Variable (Zeichenkette) mit maximal 64.000 ASCII-Zeichen.

Variant: Variant-Variablentyp (kann alle Typen enthalten und wird per Definition gesetzt).

In LibreOffice Basic brauchen Variablen nicht explizit deklariert werden. Arrays müssen vor der Verwendung jedoch deklariert werden. Sie können Variablen mit der Anweisung Dim deklarieren und mehrere Deklarationen dabei durch Kommata trennen. Zur Deklaration eines Variablentyps können Sie entweder ein Typ-Deklarationszeichen hinter dem Namen eingeben oder das entsprechende Schlüsselwort verwenden.

LibreOffice Basic unterstützt ein- oder mehrdimensionalen Arrays, die durch einen angegebenen Variablentyp definiert werden. Arrays eignen sich für Programme mit zu bearbeitenden Listen oder Tabellen. Arrays bieten den Vorteil, dass ihre Elemente einzeln über einen Index adressiert werden können, der als numerischer Ausdruck oder als Variable formuliert werden kann.

Arrays werden mit dem Dim-Befehl deklariert. Es gibt dabei zwei Möglichkeiten, festzulegen, in welchem Bereich die Indizes angesprochen werden können:

DIM text(20) as string REM 21 Elemente, von 0 bis 20 durchnummeriert

DIM text(5 to 25) as string REM 21 Elemente, von 5 bis 25 durchnummeriert

DIM text$(-15 to 5) as string REM 21 Elemente (das 0. ebenfalls!),

rem von -15 bis 5 durchnummeriert

Variablenfelder können unabhängig von ihrem Typ dynamisch gemacht werden, wenn sie auf Prozedurebene in Subroutinen oder Funktionen durch ReDim dimensioniert werden. In der Regel können Sie einen Array-Bereich nur ein einziges Mal definieren und danach nicht mehr ändern. Innerhalb einer Prozedur können Sie mit der ReDim-Anweisung ein Array deklarieren und dabei den Bereich der Feldgrößen mit numerischen Ausdrücken definieren.

Beispiel:

Sub ExampleRedim

Dim iVar() As Integer, iCount As Integer

ReDim iVar(5) As Integer

For iCount = 1 To 5

    iVar(iCount) = iCount

Next iCount

ReDim iVar(10) As Integer

For iCount = 1 To 10

    iVar(iCount) = iCount

Next iCount

End Sub