L'
instruction ReDim permet de dimensionner et de redimensionner un tableau dynamique ayant déjà été déclaré de manière formelle par le biais d'une instruction
Private,
Public ou
Dim suivie de parenthèses vides (sans indices de dimension).
Vous pouvez utiliser l'instruction
ReDim à plusieurs reprises pour modifier le nombre d'éléments et de dimensions d'un tableau. Cependant, vous ne pouvez changer a posteriori le type d'un tableau à l'aide de l'instruction
ReDim, sauf si ce tableau est contenu dans une variable de type
Variant. Dans ce cas, le type des éléments est modifiable en utilisant une clause
As type, sauf si vous utilisez le mot clé
Preserve. Aucun changement de type de données n'est alors possible.
Si vous utilisez le mot clé
Preserve, vous ne pouvez redimensionner que la dernière dimension du tableau. Vous ne pouvez en aucun cas modifier le nombre de dimensions. Par exemple, si votre tableau n'a qu'une dimension, vous pouvez la modifier puisqu'il s'agit de la dernière et seule dimension. Toutefois, si le tableau compte plusieurs dimensions, seule la taille de la dernière dimension est modifiable si vous souhaitez préserver 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 qu'il contient :
ReDim X(10, 10, 10)
. . .
ReDim Preserve X(10, 10, 15)
De même, le mot clé
Preserve ne permet de redimensionner un tableau qu'en modifiant la limite supérieure ; toute modification de la limite inférieure provoque une erreur.