Anweisung Dim

Deklariert Variablen oder Arrays.

Werden die Variablen durch Kommata getrennt – zum Beispiel Dim v1, v2, v3 As String – werden die ersten als Variant-Variablen definiert. Eine neue Zeile oder ein Doppelpunkt (:) hilft beim Trennen von Variablendefinitionen.


  Dim text As String
  Dim pv As com.sun.star.beans.PropertyValue, d As Date
  Dim Units as Integer : Dim EULER As Double

Dim deklariert lokale Variablen innerhalb von Unterprogrammen. Globale Variablen werden mit den Anweisungen Global, Public oder Private deklariert.

Syntax:

Diagramm einer Anweisung Dim


Dim Variable [(Start To Ende)] [As Typname][, Variable2[char] [(Start To Ende)] [, …]]
Tippsymbol

Der Operator New ist optional, wenn die Option "Compatible" festgelegt wird.


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: Zeichenfolge, bestehend aus maximal 2.147.483.647 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.

object: 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 Variablen nicht explizit deklariert werden. Jedoch müssen Arrays deklariert werden, bevor sie verwendet werden können. Eine Variable kann mit der Anweisung Dim deklariert werden, indem Kommata (,) verwendet werden, um mehrere Deklarationen zu trennen. Um einen Variablentyp zu deklarieren, nach dem Namen ein Typdeklarationszeichen eingeben oder einen entsprechenden Typschlüsselwortnamen verwenden.

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 mehrdimensionale 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.

Matrizen 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.

Ein Array-Typ kann als dynamisch deklariert werden, wenn eine Anweisung ReDim die Anzahl der Dimensionen in der Unterroutine oder der Funktion definiert, die das Array enthält. Im Allgemeinen kann eine Array-Dimension nur einmal definieren und nicht geändert werden. Innerhalb einer Subroutine kann mit ReDim ein Array deklariert werden. Dimensionen können nur mit numerischen Ausdrücken definiert werden. Dadurch wird sichergestellt, dass die Felder nur so groß wie nötig sind.

Beispiel:


Sub ExampleDim1
Dim sVar As String
Dim iVar As Integer
    sVar = "Office"
End Sub
 
Sub ExampleDim2
  ' Zweidimensionales Datenfeld
    Dim stext(20,2) As String
  Const sDim As String = " Dimension:"
  For i = 0 To 20
    For ii = 0 To 2
        stext(i,ii) = str(i) & sDim & str(ii)
    Next ii
  Next i
  For i = 0 To 20
    For ii = 0 To 2
        MsgBox stext(i,ii)
    Next ii
  Next i
End Sub
Bitte unterstützen Sie uns!

Bitte unterstützen Sie uns!