Module
Contents
Index 🔎︎

# ReDim Statement

Deklarerar en variabel eller en matris.

## Syntax:

    [ReDim]Dim VarName [(start To end)] [As VarType][, VarName2 [(start To end)] [As VarTyp][,...]]

Du kan också lägga till nyckelordet Preserve som en parameter om du vill ha kvar innehållet i matrisen som dimensioneras om.

## Parametrar:

VarName: Ett variabel- eller matrisnamn.

Start, End: Numeriska värden eller konstanter som definierar antalet element (NumberElements=(end-start)+1) och indexintervallet.

start och end kan vara numeriska uttryck om ReDim används på procedurnivån.

VarTyp: Nyckelord som deklarerar variabelns datatyp.

Nyckelord: Variabeltyp

Bool: Booleansk variabel (True, False)

Date: Datumvariabel

Double: Flyttal av typen Double (1,79769313486232x10E308 - 4,94065645841247x10E-324)

Integer: Heltalsvariabel (-32 768 - 32 767)

Long: Variabel för långt heltal (-2 147 483 648 -2 147 483 647)

Object: Objektvariabel (senare kan den bara definieras med Set!)

[Single]: Enkel flyttalsvariabel (3,402823x10E38 - 1,401298x10E-45). Om inget nyckelord har angetts definieras en variabel som Single, såvida inte en sats från DefBool till DefVar används.

String: Strängvariabel som innehåller högst 64 000 ASCII-tecken.

Variant: Variabeltypen Variant (kan innehålla alla typer och anges per definition).

I LibreOffice Basic behöver du inte deklarera variabler explicit. Du måste dock deklarera en matris innan du kan använda dem. Du kan deklarera en variabel med Dim-uttrycket och använda komman för att separera flera deklarationer. Om du vill deklarera en variabeltyp anger du ett skriv-deklarationstecken efter namnet eller använder ett motsvarande nyckelord.

LibreOffice Basic stöder enkla eller flerdimensionella matrisvariabler där elementen är av den variabeltyp som anges i deklarationen. Matriser är bra om programmet innehåller listor och tabeller som du vill redigera. Fördelen med matriser är att du kan anropa enskilda element utifrån index som sedan kan formuleras som numeriska uttryck och variabler.

Det finns två sätt att ange indexområden för matriser som deklarerats med Dim-satsen.

DIM text(20) As String REM 21 element numrerade från 0 till 20

DIM text(5 to 25) As String REM 21 element numrerade från 5 till 25

DIM text$(-15 to 5) As String REM 21 element (inklusive 0),

rem numrerade från -15 till 5

Du kan göra variabelfält dynamiska, oavsett typ, om de är dimensionerade av ReDim på procedurnivå i subrutiner eller funktioner. Normalt kan du bara ange området för en matris en gång och du kan inte ändra det. I proceduren kan du deklarera en matris genom att använda ReDim-satsen med numeriska uttryck som definierar fältstorlekarnas intervall.

## Exempel:

    Sub ExampleRedim

    Dim iVar() As Integer, iCount As Integer

    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