Instruction ReDim

Déclare une variable ou une matrice.

Syntaxe :

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

Vous pouvez également ajouter le mot-clé Preserve comme paramètre permettant de conserver le contenu de la matrice redimensionnée.

Paramètres :

VarName : tout nom de variable ou de matrice.

Start, End : valeurs numériques ou constantes définissant le nombre d'éléments (NumberElements=(end-start)+1) et la plage d'index.

Si ReDim est utilisée au niveau de la procédure, les paramètres Start et End peuvent être des expressions numériques.

VarType : mot-clé déclarant le type de données d'une variable.

Keyword : type de variable

Bool : variable logique (True, False)

Date : variable de date

Double : variable en double précision à virgule flottante (1,79769313486232 x 10E308 - 4,94065645841247 x 10E-324)

Integer : variable au format nombre entier (-32768 - 32767)

Long : variable au format nombre entier long (-2,147,483,648 - 2,147,483,647)

Object : variable d'objet (peut uniquement être définie par la suite avec le mot-clé Set !)

[Single] : variable en simple précision à virgule flottante (3,402823 x 10E38 - 1,401298 x 10E-45). Si aucun mot-clé n'est spécifié, les variables sont définies comme étant de type simple précision, sauf si une instruction de DefBool à DefVar est utilisée.

String : variable de chaîne de caractères comprenant au maximum 64 000 caractères ASCII.

Variant : variable de type variant (peut contenir tous les types spécifiés par la définition).

Dans LibreOffice Basic, il n'est pas nécessaire de déclarer les variables explicitement. Toutefois, vous devez déclarer une matrice avant de pouvoir les utiliser. Vous pouvez déclarer une variable avec l'instruction Dim en utilisant des virgules pour séparer les différentes déclarations. Pour déclarer un type de variable, saisissez le caractère de déclaration de type après son nom ou utilisez le mot-clé correspondant.

LibreOffice Basic supporte les matrices unidimensionnelles ou multidimensionnelles définies par un type de variable spécifié. Les matrices peuvent être utilisées si le programme comprend des listes ou des tables à éditer. L'avantage des matrices est qu'elles permettent d'appeler des éléments individuels à partir d'index, lesquels peuvent être formulés comme expressions numériques ou variables.

Il existe deux méthodes pour définir la plage d'index des matrices déclarées avec l'instruction Dim :

DIM text(20) As String REM 21 éléments numérotés de 0 à 20

DIM text(5 to 25) As String REM 21 éléments numérotés de 5 à 25

DIM text$(-15 to 5) As String REM 21 éléments (0 compris),

rem numérotés de -15 à 5

Les champs de variables, quel que soit leur type, peuvent être convertis en champs dynamiques lorsqu'ils sont dimensionnés avec l'instruction ReDim au niveau de la procédure dans les sous-routines ou les fonctions. En règle générale, la plage de la matrice ne peut être définie qu'une seule fois et vous ne pouvez pas la modifier. Dans une procédure, vous pouvez déclarer une matrice à l'aide de l'instruction ReDim en utilisant des expressions numériques pour définir la plage des tailles de champ.

Exemple :

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