Innhold

# Dim uttrykk

Deklarer variabler eller matriser.

Hvis variablene er atskilt med komma - for eksempel Dim v1, v2, v3 As String - blir de første definert som Variantvariabler. En ny linje, eller kolontegn (:), hjelper til med å skille variabeldefinisjoner.

      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 variabler innenfor subrutiner. Globale variabler er deklarert med Global, Offentlig eller Privat-setningen.

### Syntaks:

    Dim variabel [(start til slutt)] [Som typenavn][, variabel2[tegn] [(start til slutt)] [,...]]

Ny operator er valgfri når du angir alternativet Alternativkompatibel.

### Parametre:

variabel: Enhver variabel eller matrisenavn.

typenavn: Søkeord som deklarerer datatypen til en variabel.

Byte: Bytevariabel (0-255)

Boolsk: Boolsk variabel (sant, usant)

Valuta: Valutavariabel (valuta med 4 desimaler)

Dato: Datovariabel

Double: Variabel med flytende punkt med dobbel presisjon (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Heltall: Heltallsvariabel (-32768 - 32767)

Long: Long heltallsvariabel (-2.147.483.648 - 2.147.483.647)

Objekt: Objektvariabel (Merk: denne variabelen kan bare senere defineres med Sett!)

Single: Enkelpresisjon flyttallvariabel (3,402823 x 10E38 - 1,401298 x 10E-45).

Streng: Strengvariabel som består av maksimalt 2 147 483 647 tegn.

Variant: Variantvariabeltype (inneholder alle typer, spesifisert per definisjon). Hvis et typenavn ikke er spesifisert, blir variabler automatisk definert som Variant Type, med mindre en setning fra DefBool til DefVar brukes.

objekt: Universal Network-objekt (UNO)-objekt eller ClassModule-objektforekomst.

char: Spesialtegn som deklarerer datatypen som en variabel.

I LibreOffice Basic trenger du ikke å deklarere variabler eksplisitt. Du må imidlertid deklarere arrays før du kan bruke dem. Du kan deklarere en variabel med Dim-setningen, ved å bruke komma (,) for å skille flere deklarasjoner. For å deklarere en variabeltype, skriv inn et typedeklarasjonstegn etter navnet eller bruk et tilsvarende nøkkelordnavn.

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

matrise: Matrise deklarering.

start, slutt: Numeriske verdier eller konstanter som definerer antall elementer (NumberElements=(slutt-start)+1) og indeksområde.

start og end kan være numeriske uttrykk hvis ReDim brukes på prosedyrenivå.

LibreOffice Basic støtter enkelt- eller flerdimensjonale matriser som er definert av en spesifisert variabeltype. Matriser er egnet hvis programmet inneholder lister eller tabeller som du ønsker å redigere. Fordelen med matriser er at det er mulig å adressere individuelle elementer i henhold til indekser, som kan formuleres som numeriske uttrykk eller variabler.

Matriser er deklarert med Dim-setningen. Det er flere måter å definere indeksområdet på:

      Dim tekst(20) Som streng ' 21 elementer nummerert fra 0 til 20
      Dim verdi(5 til 25) Som heltall ' 21 verdier nummerert fra 5 til 25
      Dim beløp (-15 til 5) Som valuta ' 21 beløp (inkludert 0), nummerert fra -15 til 5
      REM Todimensjonalt datafelt
      Dim table$(20,2) ' 63 elementer; fra 0 til 20 nivå 1, fra 0 til 20 nivå 2 og fra 0 til 20 nivå 3.

Du kan erklære en matrise som dynamisk hvis en ReDim-setning definerer antall dimensjoner i subrutinen eller funksjonen som inneholder matrisen. Vanligvis kan du bare definere en matrisedimensjon én gang, og du kan ikke endre den. Innenfor en subrutine kan du deklarere en matrise med ReDim. Du kan bare definere dimensjoner med numeriske uttrykk. Dette sikrer at feltene er bare så store som trengs.

### Eksempel:

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

    Sub ExampleDim2
      ' Todimensjonalt datafelt
        Dim stext(20,2) As String
      Konst 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

Lignende emner

Ny Operator

Supporter oss!