Anweisung ReDim

Deklariert oder definiert Variablen oder Arrays neu.

Syntax:

Diagramm einer Anweisung ReDim


ReDim [Preserve] Variable [(Start To Ende)] [As Typname][, Variable2 [(Start To End)] [As Typname][, …]]

F√ľgen Sie optional das Schl√ľsselwort Preserve hinzu, um den Inhalt des neu dimensionierten Arrays beizubehalten. ReDim kann nur in Unterprogrammen verwendet werden.

Parameter:

Variable: Beliebiger Variablen- oder Array-Name.

Typname: Schl√ľsselwort, das den Datentyp einer Variablen deklariert.

Fragment primitiver Datentypen

Byte: Byte-Variabel (0-255)

Boolean: boolesche Variable (Wahr, Falsch)

Currency: Währungsvariable (Währung mit 4 Nachkommastellen)

Date: Date-Variable (Datum)

Double: Gleitkommavariable mit doppelter Genauigkeit (1,79769313486232x10E308 ‚Äď 4,94065645841247x10E-324)

Integer: Integer-Variable (-32768 ‚Äď 32767)

Long: Long Integer-Variable (-2.147.483.648 ‚Äď 2.147.483.647)

Object: Objektvariable (Achtung: diese Variable kann nur nachträglich mit Set definiert werden!)

Single: Gleitkommavariable mit einfacher Pr√§zision (3,402823 x 10E38 ‚Äď1,401298 x 10E-45).

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

Variant: Variablentyp Variant (enthält alle Typen, die per Definition angegeben sind). Wird kein Typname angegeben, werden Variablen automatisch als Typ "Variant" definiert, es sei denn, es wird eine Anweisung von DefBool bis DefVar verwendet.

objekt: UNO-Objekt (Universal Network Object) oder Objektinstanz ClassModule.

char: Sonderzeichen, das den Datentyp einer Variablen deklariert.

Zeichenfragment einer Deklaration Type

In LibreOffice Basic m√ľssen Sie Variablen nicht explizit deklarieren. Sie m√ľssen jedoch Arrays deklarieren, bevor Sie sie verwenden k√∂nnen. Sie k√∂nnen eine Variable mit der Anweisung Dim deklarieren, indem Sie Kommata (,) verwenden, um mehrere Deklarationen zu trennen. Um einen Variablentyp zu deklarieren, geben Sie nach dem Namen ein Typdeklarationszeichen ein oder verwenden Sie einen entsprechenden Typschl√ľsselwortnamen.

Declaration character

Variable type name

%

Integer

&

Long

!

Single

#

Double

$

String

@

Currency


array: Array-Deklaration.

Fragment f√ľr ein array

Start, Ende: Numerische Werte oder Konstanten, die die Anzahl der Elemente (NumberElements=(Ende-Start)+1) und den Indexbereich definieren.

Start und Ende k√∂nnen numerische Ausdr√ľcke sein, wenn ReDim auf Prozedurebene angewendet wird.

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 der Anweisung Dim deklariert. Es gibt mehrere Möglichkeiten, den Indexbereich zu definieren:


  Dim Text(20) As String ' 21 Elemente nummeriert von 0 bis 20
  Dim Wert(5 to 25) As Integer ' 21 Werte nummeriert von 5 bis 25
  Dim Betrag(-15 to 5) As Currency ' 21 Beträge (einschließlich 0), nummeriert von -15 bis 5
  REM Zweidimensionales Datenfeld
  Dim Tabelle$(20,2) '63 Einträge; von 0 bis 20 in Ebene 1, von 0 bis 20 in Ebene 2 und von 0 bis 20 in Ebene 3.

Sie k√∂nnen einen Array-Typ als dynamisch deklarieren, wenn eine Anweisung ReDim die Anzahl der Dimensionen in der Unterroutine oder der Funktion definiert, die das Array enth√§lt. Im Allgemeinen k√∂nnen Sie eine Array-Dimension nur einmal definieren und nicht √§ndern. Innerhalb einer Subroutine k√∂nnen Sie mit ReDim ein Array deklarieren. Sie k√∂nnen Dimensionen nur mit numerischen Ausdr√ľcken definieren. Dadurch wird sichergestellt, dass die Felder nur so gro√ü wie n√∂tig sind.

Beispiel:


Sub ExampleRedim
    Dim iVar() As Integer, iCount As Byte
    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

Bitte unterst√ľtzen Sie uns!