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 uttrykks-diagram


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

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.

primitive datatype-fragmenter

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

String: Strengvariabel som består av maksimalt 64 000 ASCII-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.

Type deklareringstegn-fragment

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.

matrisefragment

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

Supporter oss!