Indhold

# sætningen Dim

Erklærer variable eller arrays.

Hvis variablene er adskilt af kommaer – for eksempel Dim v1, v2, v3 As String – bliver de første defineret som Variant-variable. En ny linje eller tegnet kolon (:) hjælper med at adskille variabel-definitioner.

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

Dim erklærer lokale variable inden for subrutiner. Globale variable erklæres med udtrykkene Global, Public eller Private.

### Syntaks:

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

Operatoren New (Ny) er frivillig, når indstillingen Option Compatible.

### Parametre:

variable: Ethvert variabel- eller matrixnavn.

typename: Nøgleord, som erklærer en variabels datatype.

Byte: Bytevariabel (0-255)

Boolean: Boolsk variabel (True, False)

Currency: Variablen Valuta (Valuta med 4 decimalpladser)

Date: Datovariabel

Double: Dobbeltpræcisions flydende-komma (decimaltal) variabel (1,79769313486232 x 10E308 til 4,94065645841247 x 10E-324)

Integer: Heltalsvariabel (-32768 til 32767)

Long: Stor heltalsvariabel (32 bit) (-2.147.483.648 til 2.147.483.647)

Object: Objektvariabel (OBS: denne variabel kan efterfølgende kun defineres med Set!)

Single: Enkelt-nøjagtig decimaltalsvariabel (3,402823 X 10E38 til 1,401298 X 10E-45).

String: Strengvariabel med op til 2.147.483.647 tegn.

Variant: Variant variabeltype (indeholder alle typer, angivet ud fra definition). Hvis et typenavn ikke er angivet, defineres variable som varianttyper, medmindre der bruges et udtryk fra DefBool til DefVar.

objec:: Universal Network objekt (UNO)-objekt eller ClassModule-objekt-instans.

char: Specialtegn, som erklærer en variabels datatype.

I LibreOffice Basic er du ikke nødt til at erklære variable eksplicit. Du er imidlertid nødt til at erklære arrays, før du kan bruge dem. Du kan erklære en variabel med udtrykket Dim med kommaer (,) til at skille flere erklæringer. For at erklære en variabeltype taster du et typeerklæringstegn efter navnet eller bruger navnet på et tilsvarende type-nøgleord.

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

array: Matrix-erklæring.

start, end: Numeriske værdier eller konstanter, der definerer antallet af elementer (NumberElements=(end-start)+1) og matrix-området.

start og end kan være numeriske udtryk, hvis ReDim anvendes på procedure-niveauet.

LibreOffice Basic understøtter en- og flerdimensionelle arrays. Alle elementer i et array har samme variabeltype (evt. Variant). Arrays er passende hvis du har brug for at lave lister eller tabeller. Fordelen ved arrays er at det er muligt at adressere individuelle elementer via indekser, som kan formuleres som numeriske udtryk eller variable.

Matrixer erklæres med udtrykket Dim. Indeksområdet kan defineres på flere måder:

      Dim text(20) As String ' 21 elementer nummereret fra 0 til 20
      Dim value(5 to 25) As Integer ' 21 værdier nummereret fra 5 til 25
      Dim amount(-15 to 5) As Currency ' 21 beløb (herunder 0), nummereret fra -15 to 5
      REM To-dimensionelt datafelt
      Dim table$(20,2) ' 63 elementer; fra 0 til 20 på niveau 1, fra 0 til 20 på niveau 2 og fra 0 til 20 på niveau 3.

Du kan erklære en matrixtype som dynamisk, hvis udtrykket ReDim definerer antallet af dimensioner i subrutinen eller funktionen, der indeholder matrixet. Generelt kan du kun definere en matrix-dimension en gang og kan ikke ændre den. Indenfor en subrutine kan du erklære et matrix med ReDim. Du kan kun definere dimensioner med numeriske udtryk. Dette sikrer, at felter ikke er større end nøvendigt.

### Eksempel:

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

    Sub ExampleDim2
      REM Todimensionelt array
        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

Relaterede emner

New (operator)