Inhoud

# Instructie ReDim

Declareert of herdefinieert variabelen en matrixen.

### Syntaxis:

    ReDim [Preserve] variabele [(start aan einde)] [As type-name][, variabele2 [(start aan einde)] [As type-name][,...]]

Voeg eventueel Preserve toe om de inhoud van de matrix te bewaren bij het aanpassen van de dimensies. ReDim kan alleen in subroutines worden gebruikt.

### Parameters:

variable: Een variabele of matrixnaam.

typename: Sleutelwoord waarmee het type van de variabele wordt aangegeven.

Byte: Byte variabele (0-255)

Boolean: Booleaanse variabele (True, False)

Currency: Currency variabele (Valuta met 4 decimalen)

Date: Datumvariabele

Double: Double-precision floating-point variabele (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Integer: Integer-variabele (-32768 - 32767)

Long: Een variabele met het type Long (-2.147.483.648 - 2.147.483.647)

Object: Object variabele (NB: deze kan vervolgens worden gedefinieerd met Set!)

Single: Enkele-precisie zwevende-kommavariabele (3,402823 x 10E38 - 1,401298 x 10E-45).

String: Tekenreeksvariabele bestaande uit maximaal 2.147.483.647 tekens.

Variant: Variant variabele (bevat alle types, specificatie bij definitie). Als er geen typenaam is gespecificeerd dan is het type automatisch Variant, behalve als een instructie van DefBool - DefVar is gebruikt.

object: UNO-object of instantie object ClassModule.

char: Speciaal teken dat het type van een variabele aangeeft.

In LibreOffice Basic hoeft u niet expliciet variabelen te definiëren. U moet echter wel een matrix voor gebruik declareren. U kunt met Dim een variabele declareren, gebruik komma's (,) om meerdere declaraties te scheiden. Om het type aan te geven dient u een teken na de de naam toe te voegen of het overeenkomende sleutelwoord voor het type te gebruiken.

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

array: Matrixdeclaratie.

start, end: Numerieke waardes of constanten die het aantal elementen ((end-start)+1) en het bereik van de index aangeven.

start en end kunnen numerieke expressies zijn als ReDim op het niveau van de procedure wordt gebruikt.

LibreOffice BASIC ondersteunt eendimensionale en multi-dimensionele arrays, gedefinieerd door een gespecificeerd type variabele. Arrays zijn geschikt als het programma overzichten bevat of tabellen die moeten worden bewerkt. Het voordeel van arrays is dat het mogelijk is om individuele elementen volgens indexen te adresseren, die kunnen worden geformuleerd als numerieke expressies of variabelen.

Matrixen worden gedeclareerd met Dim. Het bereik van de index kan op meerdere manieren worden aangegeven:

      Dim text(20) As String ' 21 elementen genummerd van 0 tot 20
      Dim value(5 to 25) As Integer ' 21 waardes genummerd van 5 tot 25
      Dim amount(-15 to 5) As Currency ' 21 bedragen (inclusief 0), genummerd van -15 tot 5
      REM Tweedimensionaal gegevensveld
      Dim table$(20,2) ' 63 items; 0-20 niveau 1, 0-20 niveau 2 en 0-20 niveau 3.

U kunt het type van een matrix dynamisch declareren als een ReDim het aantal dimensies in de subroutine of de functie met de matrix, definieert. In het algemeen kunt u een dimensie van een matrix maar een keer definiëren en kunt u dat daarna niet meer wijzigen. In een subroutine kunt u een matrix declareren met ReDim. U kunt voor de dimensie alleen numerieke waardes of numerieke expressies gebruiken. Zo kunnen de velden zo groot als noodzakelijk worden gemaakt.

## Voorbeeld:

    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