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:

Diagram Instructie Dim


Dim variable [(start To end)] [As typename][, variable2[char] [(start To end)] [,...]]

Parameters:

variable: Een variabele of matrixnaam.

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

Fragment van primitief gegevenstype

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: Single-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.

Tekens voor aangeven type bij declaratie

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.

fragment van een matrix

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 één-dimensionale of 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
  ' Twee-dimensioneel 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

Help ons, alstublieft!