Innhold
Innholdsliste 🔎︎

# ReDim uttrykk

Deklarer eller redefinerer variabler eller matriser.

### Syntaks:

    ReDim [Bevar] variabel [(start til slutt)] [Som typenavn][, variabel2 [(start til slutt)] [Som typenavn][,...]]

Eventuelt kan du legge til søkeordet Bevar for å bevare innholdet i matrisen som er omdimensjonert. ReDim kan bare brukes i subrutiner.

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

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.

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 ExampleRedim
        Dim iVar() As Integer, iCount As Byte
        ReDim iVar(5) As Integer
        For iCount = 1 To 5
            iVar(iCount) = iCount
        Next iCount
        ReDim iVar(10) As Integer
        For iCount = 1 To 10
            iVar(iCount) = iCount
        Next iCount
    End Sub