LibreOffice 25.2 Hjelp
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
  
Dim-variabel [(start til slutt)] [As typenamn][, variabel2[char][(start To slutt)] [,…]]
Operatøren New er valfri viss Option Compatible er spesifisert.
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.
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