Instruction ReDim

Déclare des variables de tableau dynamique, et alloue ou réalloue de l'espace de stockage au niveau de la procédure.

Syntaxe

ReDim [Preserve] varname(subscripts) [, varname(subscripts)] . . .

Arguments :

  • Preserve : conserve les données d'un tableau existant lorsque vous modifiez la taille de la dernière dimension.

  • varname : nom de la variable. Respecte les conventions de dénomination de variable standard.

  • subscripts : dimensions d'une variable de tableau.

Remarques

L'instruction ReDim permet de dimensionner ou de redimensionner un tableau dynamique qui a déjà été déclaré formellement à l'aide d'une instruction Private, Public ou Dim avec des parenthèses vides (sans indice de dimension). Vous pouvez utiliser l'instruction ReDim plusieurs fois pour modifier le nombre d'éléments et de dimensions d'un tableau.

Si vous utilisez le mot-clé Preserve, vous ne pouvez redimensionner que la dernière dimension du tableau et vous ne pouvez pas modifier le nombre de dimensions. Par exemple, si le tableau ne comporte qu'une seule dimension, vous pouvez la redimensionner car il s'agit de la dernière et seule dimension. Toutefois, si le tableau comporte au moins deux dimensions, vous pouvez modifier la taille de la dernière dimension uniquement, tout en conservant le contenu du tableau.

L'exemple suivant montre comment augmenter la taille de la dernière dimension d'un tableau dynamique sans effacer les données existantes contenues dans le tableau.

Exemple 1 : utilisation de base de ReDim (sans Preserve)

Dim arr()
' Initially, create an array with 3 elements
ReDim arr(2)  ' Array can hold 3 elements (0, 1, 2)
' Assign values to the array
arr(0) = "Apple"
arr(1) = "Banana"
arr(2) = "Cherry"
' Now, resize the array to hold 5 elements
ReDim arr(4)  ' Array can hold 5 elements (0, 1, 2, 3, 4)
'If you try to access indexes 0, 1, 2 there will be no values.
' The previous values are lost because we did not use Preserve
arr(3) = "Date"
arr(4) = "Elderberry"

Exemple 2 : utilisation de ReDim Preserve pour conserver les données existantes

Dim arr()
' Initially, create an array with 3 elements
ReDim arr(2)  ' Array can hold 3 elements (0, 1, 2)
' Assign values to the array
arr(0) = "Apple"
arr(1) = "Banana"
arr(2) = "Cherry"
' Now, resize the array to hold 5 elements, keeping the existing data
ReDim Preserve arr(4)  ' Array can hold 5 elements (0, 1, 2, 3, 4)
' The previous values are preserved, so we can add more elements
arr(3) = "Date"
arr(4) = "Elderberry"

Attention : si vous réduisez un tableau, les données des éléments éliminés sont perdues.

Les variables numériques sont initialisées sur 0 et les variables de chaîne sont initialisées sur des chaînes de longueur nulle (""). Pour pouvoir utiliser une variable qui fait référence à un objet, un objet existant doit lui être affecté à l'aide de l'instruction Set. Tant qu'aucun objet ne lui est affecté, la variable d'objet déclarée présente la valeur spéciale Nothing.