Instruction ReDim

Déclare ou redéfinit des variables ou des tableaux.

Syntaxe :

Diagramme de l'instruction ReDim


ReDim [Preserve] variable [(début à fin)] [As nom-de-type][, variable2 [(début à fin)] [As nom-de-type][,...]]

Vous pouvez Ă©galement ajouter le mot clĂ© Preserve pour conserver le contenu du tableau redimensionnĂ©. ReDim ne peut ĂȘtre utilisĂ© que dans des sous-programmes.

ParamĂštres :

variable:Tout nom de variable ou de tableau.

typename: Mot clé qui déclare le type de données d'une variable.

fragment de types de données primitif

Byte: Variable de type octet (0-255)

Boolean: Variable de type booleen (True, False)

Currency: Variable de type devise (Devise avec 4 décimales)

Date : variable de date

Double: Variable à virgule flottante double précision (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 objet (Remarque: cette variable ne peut ĂȘtre dĂ©finie par la suite qu'avec Set!)

Single : variable à virgule flottante simple précision (3,402823 x 10E38 - 1,401298 x 10E-45).

String : variable de chaĂźne comprenant au maximum 64 000 caractĂšres ASCII.

Variant:Type de variable variant (contient tous les types, spécifiés par définition). Si aucun nom de type n'est spécifié, les variables sont automatiquement définies comme Type Variant, sauf si une instruction de DefBool à DefVar est utilisée.

object: Objet Universal Network object (UNO) ou instance de ClassModule.

char: CaractÚre spécial qui déclare le type de données d'une variable.

Fragment de caractÚres de déclaration de type

Dans LibreOffice Basic, vous n'avez pas besoin de déclarer explicitement des variables. Cependant, vous devez déclarer des tableaux avant de pouvoir les utiliser. Vous pouvez déclarer une variable avec l'instruction Dim, en utilisant des virgules (, ) pour séparer plusieurs déclarations. Pour déclarer un type de variable, entrez un caractÚre de déclaration de type aprÚs le nom ou utilisez un nom de mot-clé de type correspondant.

Declaration character

Variable type name

%

Integer

&

Long

!

Single

#

Double

$

String

@

Currency


array: DĂ©claration de tableau.

fragment de matrice

start, end: Valeurs numériques ou constantes qui définissent le nombre d'éléments (NombreElements = (end-start) +1) et la plage d'index.

start and end peuvent ĂȘtre des expressions numĂ©riques si ReDim est appliquĂ© dans la procĂ©dure.

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.

Les tableaux sont déclarés avec l'instruction Dim. Il existe plusieurs façons de définir la plage d'index :


  Dim text(20) As String ' 21 éléments numérotés de 0 à 20
  Dim value(5 to 25) As Integer ' 21 valeurs numérotées de 5 à 25
  Dim montant(-15 to 5) As Currency ' 21 montants(0 inclus),numérotés de  -15 à 5
  REM Champ de données bidimensionnel
  Dim table$(20,2) ' 63 items; de 0 Ă  20 niveau 1, de 0 Ă  20 niveau 2 et de  0 Ă  20 niveau 3.

Vous pouvez déclarer un type de tableau dynamique si une instruction ReDim définit le nombre de dimensions dans le sous-programme ou la fonction qui contient le tableau. En rÚgle générale, vous ne pouvez définir une dimension de tableau qu'une seule fois et vous ne pouvez pas la modifier. Dans un sous-programme, vous pouvez déclarer un tableau avec ReDim. Vous ne pouvez définir des dimensions qu'avec des expressions numériques. Cela garantit que les champs sont aussi grands que nécessaire.

Exemple :


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

Aidez-nous !