Modul
Indhald
Innhaldsliste 🔎︎

# Dim-uttrykket

Deklarere ein variabel inne i ein tabell (array)

Viss variablane er skilde med komma (for eksempel DIM sPar1, sPar2, sPar3 AS STRING), kan berre variantvariablar definerast. Bruk ei ny linje for kvar variabeldefinisjon.

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

Dim deklarerer lokale variablar inne i subrutinar. Globale variablar vert deklarerte med uttrykket PUBLIC eller PRIVATE.

## Syntaks:

    [ReDim]Dim VarNamn [(start TO slutt)] [As VarType][, VarNamn2 [(start TO slutt)] [As VarType][,...]]

## Parametrar:

VarName: Eit variabel- eller tabellnamn.

Start, Slutt: Numeriske verdiar eller konstantar som bestemmer talet på element (TalElement = (slutt - start) + 1) og indeksområdet.

Start og Slutt kan vera numeriske uttrykk viss ReDim er brukt på prosedyrenivået.

VarType: Nøkkelord som bestemmer datatypen for ein variabel.

Nøkkelord: Variabeltype

Bool: Boolsk variabel (SANN, USANN).

Valuta: Valutavariabel (med 4 Desimalplassar)

Date: Dato variabel

Double: Dobbel-presisjon desimaltalvariabel (floating-point) (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Integer: Heiltalsvariabee (-32768 till 32767)

Long: Heiltalsvariabel av typen Long (-2.147.483.648 til 2.147.483.647)

Objekt: Objektvariabel (Merk: Denne variabelen kan berre i ettertid definerast med «Set»).

Single: Singel-presisjon desimalvariabel (floating-point)(3,402823 x 10E38 til 1,401298 x 10E-45).

String: Strengvariabel med opp til 64.000 ASCII-teikn.

[Variant]: Variabeltypen Variant kan innehalda variablar av alle typar. Typen vert definert ved tildeling av verdi til variabelen. Viss det ikkje er oppgjeve noko nøkkelord, vert variablar automatisk definerte som Variant-typar, unntatt viss eit uttrykk frå DefBool til DefVar er brukt.

I LibreOffice Basic treng du ikkje deklarera variablane eksplisitt (dvs. før du brukar dei). Tabellar (arrays) må derimot alltid deklarerast før dei vert brukte. Du kan deklarera ein variabel med Dim-uttrykket der du brukar komma for å skilja mellom fleire deklarasjonar. For å deklarera ein variabeltype, skriv du inn eit typedeklareringsteikn etter variabelnamnet eller brukar eit nøkkelord for variabeltypen.

LibreOffice Basic har støtte for ein- eller fleirdimensjonelle tabellar (arrays) som er definerte med ein spesifisert variabeltype. Tabellar høver godt viss programmet inneheld lister eller tabellar som du ønskjer å redigera. Fordelen med tabellar, er at det er råd å adressera kvart element ved hjelp av indeksen, som kan vera eit taluttrykk eller ein variabel.

Tabellar (arrays) vert deklarerte med DIM-uttrykket. Det er to måtar å definere indeksområdet på:

DIM tekst(29 as String ' 21 element nummererte frå 0 til 20.

DIM tekst(5 to 25) as String ' 21 element nummererte frå 5 til 25

DIM tekst(-15 to 5) as String ' 21 element (inklusiv 0)

REM nummerert frå -15 til 5

To-dimensjonale datafelt

DIM tekst(20,2) as String ' 63 element, frå 0 til 20 lnivå 1, frå 0 til 20 nivå 2 og frå 0 til 20 nivå 3.

Du kan deklarera ein tabell-type (array) som dynamisk ved å bruka eit ReDim-uttrykk for å definera dimensjonane i subrutinen eller funksjonen som inneheld tabellen. Normalt kan du definera ein tabelldimensjon éin gong, og du kan ikkje endra dimensjonen. Inne i ein subrutine kan du deklarera ein tabell med ReDim. Du kan definera dimensjonar berre med taluttrykk. Dette gjer at felta ikkje vert større enn nødvendig.

## Eksempel:

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

    Sub ExampleDim2
    ' To-dimensjonalt datafelt
    Dim stext(20,2) As String
    Const sDim As String = " Dimensjon:"
    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