Partager via


Déclaration de tableaux

Les tableaux sont déclarés de la même façon que les autres variables, à l’aide d’instructions Dim, Static, Private ou Public. La différence entre les variables scalaires (celles qui ne sont pas matrices) et matrice variables est que vous devez généralement spécifier la taille de la matrice. Une matrice dont la taille est spécifiée est un tableau de taille fixe. Une matrice dont la taille peut être modifiée pendant l’exécution d’un programme est un tableau dynamique.

L’indexation d’un tableau à partir de 0 ou 1 dépend du paramètre de l’instruction Option Base. Si Option Base 1 n’est pas spécifié, tous les index de tableau commencent à zéro.

Déclarer un tableau fixe

Dans la ligne suivante de code, un tableau de taille fixe est déclaré comme un entier matricielle ayant 11 les lignes et 11 colonnes :

Dim MyArray(10, 10) As Integer 

Le premier argument représente les lignes ; le deuxième argument représente les colonnes.

Comme pour les autres déclaration variable, sauf si vous spécifiez un type de données la matrice est le type de données des éléments dans un tableau déclaré variante. Chaque numérique variante élément de la matrice utilise 16 octets. Chaque chaîne variante élément utilise 22 octets. Pour écrire de code est compact que possible, déclarer explicitement votre matrices être d’un type de données autres que variante.

Ces lignes de code comparent la taille de plusieurs tableaux.

' Integer array uses 22 bytes (11 elements * 2 bytes). 
ReDim MyIntegerArray(10) As Integer 
 
' Double-precision array uses 88 bytes (11 elements * 8 bytes). 
ReDim MyDoubleArray(10) As Double 
 
' Variant array uses at least 176 bytes (11 elements * 16 bytes). 
ReDim MyVariantArray(10) 
 
' Integer array uses 100 * 100 * 2 bytes (20,000 bytes). 
ReDim MyIntegerArray (99, 99) As Integer 
 
' Double-precision array uses 100 * 100 * 8 bytes (80,000 bytes). 
ReDim MyDoubleArray (99, 99) As Double 
 
' Variant array uses at least 160,000 bytes (100 * 100 * 16 bytes). 
ReDim MyVariantArray(99, 99) 

La taille maximale d’une matrice varie en fonction de votre système d’exploitation et la quantité de mémoire est disponible. À l’aide d’une matrice qui dépasse la quantité de RAM disponible sur votre système est plus lente, car les données doivent lisez d’et écrites sur disque.

Déclarer un tableau dynamique

Par la déclaration d’un tableau dynamique, vous pouvez redimensionner la matrice pendant l’exécution du code. Utilisez un statique, Dim, privé, ou Public instruction à déclarer un tableau, en laissant les parenthèses vides, comme illustré dans le exemple suivant.

Dim sngArray() As Single 

Remarque

Utilisez l’instruction ReDim pour déclarer implicitement un tableau dans une procédure. Veillez à ne orthographier correctement le nom du tableau lorsque vous utilisez l’instruction ReDim. Même si l’instruction Option Explicit est incluse dans le module, un deuxième tableau sera créé.

Dans une procédure dans la matrice étendue, utilisez la ReDim instruction à modifier le nombre de dimensions, pour définir le nombre d’éléments et définir des limites supérieures et inférieures pour chaque dimension. Utilisez l’instruction ReDim pour modifier le tableau dynamique aussi souvent que nécessaire. Toutefois, chaque fois que vous faites cela, les valeurs existants dans la matrice sont perdues. Utilisez ReDim conserver pour développer une matrice tout en conservant des valeurs existantes dans la matrice.

Par exemple, l’instruction suivante agrandit le tableau de 10 éléments sans perdre les valeurs actuelles des éléments d’origine.

ReDim Preserve varArray(UBound(varArray) + 10) 

Remarque

Lorsque vous utilisez preservemot clé avec un tableau dynamique, vous pouvez modifier uniquement la limite supérieure de la dernière dimension, mais vous ne pouvez pas modifier le nombre de dimensions.

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.