Contents
Index 🔎︎

# Dim Statement

Declares a variable or an array.

If the variables are separated by commas (for example, DIM sPar1, sPar2, sPar3 AS STRING), only Variant variables can be defined. Use a separate definition line for each variable.

    Dim sPar1 As String
    Dim sPar2 As String
    Dim sPar3 As String

Dim declares local variables within subroutines. Global variables are declared with the PUBLIC or the PRIVATE statement.

## Syntax:

    [ReDim]Dim VarName [(start To end)] [As VarType][, VarName2 [(start To end)] [As VarType][,...]]

## Parameters:

VarName: Any variable or array name.

Start, End: Numerical values or constants that define the number of elements (NumberElements=(end-start)+1) and the index range.

Start and End can be numerical expressions if ReDim is applied at the procedure level.

VarType: Key word that declares the data type of a variable.

Keyword: Variable type

Bool: Boolean variable (True, False)

Currency: Currency-Variable (Currency with 4 Decimal places)

Date: Date variable

Double: Double-precision floating-point variable (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: Object variable (Note: this variable can only subsequently be defined with Set!)

Single: Single-precision floating-point variable (3,402823 x 10E38 - 1,401298 x 10E-45).

String: String variable consisting of a maximum of 64,000 ASCII characters.

[Variant]: Variant variable type (contains all types, specified by definition). If a key word is not specified, variables are automatically defined as Variant Type, unless a statement from DefBool to DefVar is used.

In LibreOffice Basic, you do not need to declare variables explicitly. However, you need to declare an array before you can use them. You can declare a variable with the Dim statement, using commas to separate multiple declarations. To declare a variable type, enter a type-declaration character following the name or use a corresponding key word.

LibreOffice Basic supports single or multi-dimensional arrays that are defined by a specified variable type. Arrays are suitable if the program contains lists or tables that you want to edit. The advantage of arrays is that it is possible to address individual elements according to indexes, which can be formulated as numeric expressions or variables.

Arrays are declared with the Dim statement. There are two methods to define the index range:

DIM text(20) as String REM 21 elements numbered from 0 to 20

DIM text(5 to 25) as String REM 21 elements numbered from 5 to 25

DIM text(-15 to 5) as String REM 21 elements (including 0)

REM numbered from -15 to 5

Two-dimensional data field

DIM text(20,2) as String REM 63 elements; form 0 to 20 level 1, from 0 to 20 level 2 and from 0 to 20 level 3.

You can declare an array types as dynamic if a ReDim statement defines the number of dimensions in the subroutine or the function that contains the array. Generally, you can only define an array dimension once, and you cannot modify it. Within a subroutine, you can declare an array with ReDim. You can only define dimensions with numeric expressions. This ensures that the fields are only as large as necessary.

## Example:

    Sub ExampleDim1
    Dim sVar As String
    Dim iVar As Integer
        sVar = "Office"
    End Sub

    Sub ExampleDim2
    ' Two-dimensional data field
    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