Inhoud
Index 🔎︎

# Instructie Dim

Declareert variabelen of matrices.

Als de variabelen worden gescheiden door komma's, bijvoorbeeld Dim v1, v2, v3 As String, worden de eerste variabelen gedefinieerd met type Variant. Een nieuwe regel of dubbele punt (:), zorgt voor het scheiden van de definities.

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

Dim declareert lokale variabelen binnen subroutines. Globale variabelen worden gedeclareerd met Global, Public of Private.

### Syntaxis:

    Dim variabele [(start aan einde)] [As typename][, variabele2[char] [(start aan einde)] [,...]]

### Parameters:

variable: Een variabele of matrixnaam.

typename: Sleutelwoord waarmee het type van de variabele wordt aangegeven.

Byte: Byte variabele (0-255)

Boolean: Booleaanse variabele (True, False)

Currency: Currency variabele (Valuta met 4 decimalen)

Date: Datumvariabele

Double: Double-precision floating-point variabele (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Integer: Integer-variabele (-32768 - 32767)

Long: Een variabele met het type Long (-2.147.483.648 - 2.147.483.647)

Object: Object variabele (NB: deze kan vervolgens worden gedefinieerd met Set!)

Single: Enkele-precisie zwevende-kommavariabele (3,402823 x 10E38 - 1,401298 x 10E-45).

String: String-variabele bestaande uit een maximum van 64.000 ASCII tekens.

Variant: Variant variabele (bevat alle types, specificatie bij definitie). Als er geen typenaam is gespecificeerd dan is het type automatisch Variant, behalve als een instructie van DefBool - DefVar is gebruikt.

object: UNO-object of instantie object ClassModule.

char: Speciaal teken dat het type van een variabele aangeeft.

In LibreOffice Basic hoeft u niet expliciet variabelen te definiëren. U moet echter wel een matrix voor gebruik declareren. U kunt met Dim een variabele declareren, gebruik komma's (,) om meerdere declaraties te scheiden. Om het type aan te geven dient u een teken na de de naam toe te voegen of het overeenkomende sleutelwoord voor het type te gebruiken.

Declaration character | Variable type name
% | Integer
& | Long
! | Single
# | Double
$ | String
@ | Currency

array: Matrixdeclaratie.

start, end: Numerieke waarden of constanten die het aantal elementen ((end-start)+1) en het bereik van de index aangeven.

start en end kunnen numerieke expressies zijn als ReDim op het niveau van de procedure wordt gebruikt.

LibreOffice BASIC ondersteunt eendimensionale en multi-dimensionele arrays, gedefinieerd door een gespecificeerd type variabele. Arrays zijn geschikt als het programma overzichten bevat of tabellen die moeten worden bewerkt. Het voordeel van arrays is dat het mogelijk is om individuele elementen volgens indices te adresseren, die kunnen worden geformuleerd als numerieke expressies of variabelen.

Matrixen worden gedeclareerd met Dim. Het bereik van de index kan op meerdere manieren worden aangegeven:

      Dim text(20) As String ' 21 elementen genummerd van 0 tot 20
      Dim value(5 to 25) As Integer ' 21 waarden genummerd van 5 tot 25
      Dim amount(-15 to 5) As Currency ' 21 bedragen (inclusief 0), genummerd van -15 tot 5
      REM Tweedimensionaal gegevensveld
      Dim table$(20,2) ' 63 items; 0-20 niveau 1, 0-20 niveau 2 en 0-20 niveau 3.

U kunt het type van een matrix dynamisch declareren als een ReDim het aantal dimensies in de subroutine of de functie met de matrix, definieert. In het algemeen kunt u een dimensie van een matrix maar een keer definiëren en kunt u dat daarna niet meer wijzigen. In een subroutine kunt u een matrix declareren met ReDim. U kunt voor de dimensie alleen numerieke waarden of numerieke expressies gebruiken. Zo kunnen de velden zo groot als noodzakelijk worden gemaakt.

### Voorbeeld:

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

    Sub ExampleDim2
      ' Tweedimensionaal gegevensveld
        Dim stext(20,2) As String
      Const sDim As String = " Dimensie:"
      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

Verwante onderwerpen

Operator New