Dim Statement

Määritellään muuttuja tai taulukko.

Jos muuttujat on erotettu pilkuilla (esimerkiksi, DIM sPar1, sPar2, sPar3 AS STRING), vain variant-muuttujia voidaan määritellä. Kullekin muuttujalle käytetään omaa määrittelyriviä.

Dim sPar1 As String

Dim sPar2 As String

Dim sPar3 As String

Dim määrittelee eli esittelee paikalliset muuttujat aliohjelmissa. Globaalit muuttujat määritellään PUBLIC- tai PRIVATE-lauseella.

Syntaksi:

[ReDim]Dim muuttujanimi_1 [(alku1 To loppu1)] [As tyyppi_1][, muuttujanimi_2 [(alku2 To loppu2)] [As tyyppi_2][,...]]

Parametrit:

Muuttujanimi_n: mikä tahansa muuttujan tai taulukon nimi.

Alku, loppu: numeerisia arvoja tai vakioita, jotka määrittelevät alkioiden määrän (alkioiden lukumäärä=(loppu-alku)+1) ja indeksivälin.

Alku ja loppu voivat olla numeerisia lausekkeita, jos ReDim on käytössä proseduuritasolla.

Tyyppi_n: avainsana, joka määrittää muuttujan tietotyypin.

Avainsana: oletusmuuttujatyyppi

Bool: Boolen muuttuja (True, False)

Currency: valuuttamuuttuja (valuutta 4 desimaalilla)

Date: päivämäärämuuttuja

Double: kaksoistarkkuuden liukulukumuuttuja (itseisarvot 1,79769313486232 x 10E308 ... 4,94065645841247 x 10E-324)

Integer: kokonaislukumuuttuja (-32768 ... 32767)

Long: pitkä kokonaislukumuuttuja (-2 147 483 648 ... 2 147 483 647)

Object: objektimuuttuja (Tämä muuttaja voidaan vasta tämän esittelyn jälkeen määritellä Set-lauseella!)

Single: perustarkkuuden liukulukumuuttuja (itseisarvot 3,402823 x 10E38 ... 1,401298 x 10E-45).

String: Merkkijonomuuttuja, jossa on enintään 64,000 ASCII-merkkiä.

[Variant]: variant-yleismuuttujatyyppi (pitää sisällään kaikki tyypit, määritelmällisesti). Jos avainsanaa ei ole määritelty, muuttujat määritellään oletuksellisesti variant-tyyppisiksi, ellei lauseita DefBool ... DefVar ole käytetty.

LibreOffice Basicissa muuttujille ei ole pakko tehdä nimenomaista esittelyä. Taulukot on kuitenkin määriteltävä. Muuttuja voidaan määritellä Dim-lauseella. Muuttujat erotellaan pilkuin, jos niitä on useita samassa lauseessa. Tyypin määrittelemiseksi kirjoitetaan nimen perään tyypinmäärittävä kirjain tai käytetään vastaavaa avainsanaa.

LibreOffice Basic tukee yksi- ja moniulotteisia taulukkoja, jotka määritellään tietyn tyyppisiksi. Taulukkomuuttujat ovat käytännöllisiä, mikäli ohjelmassa on luetteloita tai aineistotaulukoita, joita pitää muokata. Taulukon etuna on se, että yksittäiseen alkioon voidaan viitata indeksillä, joka voidaan tuottaa numeerisesta lausekkeesta tai muuttujasta.

Taulukot määritellään Dim-lauseella. Taulukon indeksivälin määrittämiseen on kaksi tapaa:

DIM text(20) as String REM 21 alkiota, jotka on numeroitu 0 ... 20

DIM text(5 to 25) as String REM 21 alkiota, jotka on numeroitu 5 ... 25

DIM text(-15 to 5) as String REM 21 alkiota (indekseissä on mukana 0)

REM numeroitu -15 ... 5

Kaksiulotteinen taulukko

DIM text(20,2) as String REM 63 alkiota; 1. tasolla 0 ... 20, 2. tasolla 0 ... 20 ja 3. tasolla 0 ... 20.

Taulukko voidaan määritellä dynaamisesti, jos ReDim-lause määrittelee ulottuvuuksien määrän aliohjelmassa tai funktiossa, joka sisältää taulukon. Yleensä taulukon ulottuvuudet voi määritellä vain kerran eikä niitä voi muuttaa. Aliohjelmassa taulukko voidaan määritellä ReDim-lauseella. Ulottuvuudet voidaan määritellä vain numeerisin lausekkein. Tämä varmistaa, ettei taulukot ole tarpeettoman suuret.

Esimerkki:

Sub ExampleDim1

Dim sVar As String

Dim iVar As Integer

    sVar = "Office"

End Sub

 

Sub ExampleDim2

Kaksiulotteinen taulukko

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