Déclaration de tableauxDeclaring arrays

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.Arrays are declared the same way as other variables, by using the Dim, Static, Private, or Public statements. 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.The difference between scalar variables (those that aren't arrays) and array variables is that you generally must specify the size of the array. Une matrice dont la taille est spécifiée est un tableau de taille fixe.An array whose size is specified is a fixed-size array. Une matrice dont la taille peut être modifiée pendant l’exécution d’un programme est un tableau dynamique.An array whose size can be changed while a program is running is a dynamic array.

L’indexation d’un tableau à partir de 0 ou 1 dépend du paramètre de l’instruction Option Base.Whether an array is indexed from 0 or 1 depends on the setting of the Option Base statement. Si Option Base 1 n’est pas spécifié, tous les index de tableau commencent à zéro.If Option Base 1 is not specified, all array indexes begin at zero.

Déclarer un tableau fixeDeclare a fixed array

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 :In the following line of code, a fixed-size array is declared as an Integer array having 11 rows and 11 columns:

Dim MyArray(10, 10) As Integer 

Le premier argument représente les lignes ; le deuxième argument représente les colonnes.The first argument represents the rows; the second argument represents the columns.

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.As with any other variable declaration, unless you specify a data type for the array, the data type of the elements in a declared array is Variant. Chaque numérique variante élément de la matrice utilise 16 octets.Each numeric Variant element of the array uses 16 bytes. Chaque chaîne variante élément utilise 22 octets.Each string Variant element uses 22 bytes. Pour écrire de code est compact que possible, déclarer explicitement votre matrices être d’un type de données autres que variante.To write code that is as compact as possible, explicitly declare your arrays to be of a data type other than Variant.

Ces lignes de code comparent la taille de plusieurs tableaux.The following lines of code compare the size of several arrays.

' 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.The maximum size of an array varies, based on your operating system and how much memory is available. À 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.Using an array that exceeds the amount of RAM available on your system is slower because the data must be read from and written to disk.

Déclarer un tableau dynamiqueDeclare a dynamic array

Par la déclaration d’un tableau dynamique, vous pouvez redimensionner la matrice pendant l’exécution du code.By declaring a dynamic array, you can size the array while the code is running. Utilisez un statique, Dim, privé, ou Public instruction à déclarer un tableau, en laissant les parenthèses vides, comme illustré dans le exemple suivant.Use a Static, Dim, Private, or Public statement to declare an array, leaving the parentheses empty, as shown in the following example.

Dim sngArray() As Single 

Notes

Utilisez l’instruction ReDim pour déclarer implicitement un tableau dans une procédure.You can use the ReDim statement to declare an array implicitly within a procedure. Veillez à ne orthographier correctement le nom du tableau lorsque vous utilisez l’instruction ReDim.Be careful not to misspell the name of the array when you use the ReDim statement. Même si l’instruction Option Explicit est incluse dans le module, un deuxième tableau sera créé.Even if the Option Explicit statement is included in the module, a second array will be created.

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.In a procedure within the array's scope, use the ReDim statement to change the number of dimensions, to define the number of elements, and to define the upper and lower bounds for each dimension. Vous pouvez utiliser la ReDim instruction à modifier le tableau dynamique aussi souvent que nécessaire.You can use the ReDim statement to change the dynamic array as often as necessary. Toutefois, chaque fois que vous faites cela, les valeurs existants dans la matrice sont perdues.However, each time you do this, the existing values in the array are lost. Utilisez ReDim conserver pour développer une matrice tout en conservant des valeurs existantes dans la matrice.Use ReDim Preserve to expand an array while preserving existing values in the array.

Par exemple, l’instruction suivante agrandit le tableau de 10 éléments sans perdre les valeurs actuelles des éléments d’origine.For example, the following statement enlarges the array by 10 elements without losing the current values of the original elements.

ReDim Preserve varArray(UBound(varArray) + 10) 

Notes

Lorsque vous utilisez le mot clé Preserve avec un tableau dynamique, vous pouvez modifier la limite supérieure de la dernière dimension, mais vous ne pouvez pas modifier le nombre de dimensions.When you use the Preserve keyword with a dynamic array, you can change only the upper bound of the last dimension, but you can't change the number of dimensions.

Voir aussiSee also

Assistance et commentairesSupport and feedback

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ?Have questions or feedback about Office VBA or this 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.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.