Dim-uttrykket

Innhald

# Dim-uttrykkett

Deklarera variablar og matriser.

Viss variablane er skilde med komma – for eksempel Dim v1, v2, v3 As String – vert dei første definerte som variant-variablar. Eit linjeskift eller eit kolon : hjelper til med å skilja variabeldefinisjonane.

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

Dim deklarerer lokale variablar inne i subrutinar. Globale variablar vert deklarerte med uttrykka Global, Public eller Private

### Syntaks:

    Dim-variabel [(start til slutt)] [As typenamn][, variabel2[char][(start To slutt)] [,…]]

Operatøren New er valfri viss Option Compatible er spesifisert.

### Parametrar:

variabel: Kva variabel- eller matrisenamn som helst.

typenamn: Nøkkelord som deklarerer datatypen for ein variabel.

Byte: Bytevariabel (0-255)

Boolsk: 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: Heiltalsvariabel (-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).

Streng: Strengvariabel med opp til 2 147 483 647 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, unnateke viss eit uttrykk frå DefBool til DefVar er brukt.

objekt: Universal Network object (UNO)-objekt eller ClassModule-objekt-førekomst.

char: Spesialteikn som deklarerer datatypen for variabelen.

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 medDim-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.

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

array: Matrisedeklarering

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

start og end kan vera numeriske uttrykk viss ReDim er brukt på prosedyrenivået.

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 (matriser) vert deklarerte med uttrykket Dim. Det er fleire måtar å definera indeksområdet på:

      DIM text(20) As String ' 21 element nummerert frå 0 til 20
      DIM value(5 to 25) As Integer ' 21 element nummerert frå 5 til 25
      Dim amount(-15 to 5) As Currency ' 21 beløp (medrekna 0), nummerert frå -15 til 5
      REM To-dimensjonalt datafelt
      DIM table(20,2) ' 63 element, frå 0 til 20 på nivå 1, frå 0 til 20 på nivå 2 og frå 0 til 20 på nivå 3.

Du kan deklarera ein tabell (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

Liknande emne

New-operatoren

Støtt oss!