Tableau dynamique VBA (Redim et Redim Preserve)

Ce tutoriel montrera comment utiliser des tableaux dynamiques (redim et redim preserve) dans VBA.

Tableau dynamique

Tableaux dynamiques sont des tableaux qui peuvent changer de taille (par opposition à tableaux statiques, qui sont statiques).

Pour déclarer un tableau dynamique, vous déclarez le tableau, mais omettez la taille du tableau :

1 Dim strNames() en tant que chaîne

Ensuite, avant de pouvoir attribuer des valeurs à votre tableau, vous devez utiliser l'instruction ReDim pour définir le tableau à la taille souhaitée :

1 ReDim strNames (1 à 3)

Maintenant, chaque fois que vous souhaitez modifier la taille de votre tableau, utilisez simplement ReDim (ou ReDim Preserve comme nous le verrons ci-dessous).

Tableaux de variantes dynamiques

Remarque : les tableaux de variantes sont un peu différents. Avec les tableaux de variantes, vous n'avez pas besoin de définir la taille du tableau avec ReDim avant d'attribuer des valeurs.

12345678 Sous TableauTest()'déclarer la variableDim varNames() en tant que variante'remplir le tableauvarNames() = Array("Fred", "Wilma", "Barney", "Betty")'retourner les valeursMsgBox Join(varNames, ",")Fin du sous-marin

Redim contre Redim Preserve

Les ReDim l'instruction redimensionne un tableau, clairière toutes les valeurs existantes.

Les ReDim préserver l'instruction redimensionne un tableau, en gardant (« préserver ») toutes les valeurs existantes.

Utilisation de ReDim

En pratique, le redimensionnement d'un tableau avec ReDim ressemble à ceci :

123456789101112 Sous TestReDim()'déclare le tableau de chaînesDim strNames() en tant que chaîne'redimensionner le tableau de chaînes pour pouvoir contenir 3 valeursReDim strNames (1 à 3)'remplir le tableau avec 3 nomsstrNames(1) = "Mel"strNames(2) = "Steve"strNames(3) = "Bob"'afficher le résultat dans la fenêtre immédiateDebug.Print Join(strNames, vbCrLf)Fin du sous-marin

Utilisation de ReDim Preserve

Dans cet exemple, nous utiliserons ReDim pour définir le tableau dynamique initial, puis ReDim Preserve pour redimensionner le tableau, en gardant les valeurs d'origine :

1234567891011121314151617 Sous TestReDim()'déclare le tableau de chaînesDim strNames() en tant que chaîne'redimensionner le tableau de chaînes pour pouvoir contenir 3 valeursReDim strNames (1 à 3)'remplir le tableaustrNames(1) = "Mel"strNames(2) = "Steve"strNames(3) = "Bob"'afficher le résultat dans la fenêtre immédiateDebug.Print Join(strNames, vbCrLf)'redim mais préserve les donnéesReDim Preserve strNames (1 à 4)strNames(4) = "Fred"'afficher le résultat dans la fenêtre immédiateDebug.Print Join(strNames, vbCrLf)Fin du sous-marin

Si vous n'utilisez pas le PRÉSERVER instruction, vous perdriez les données qui se trouvaient précédemment dans le tableau.

Dans la fenêtre immédiate ci-dessus, le tableau a rempli Mel, Steve et Bob. Lorsqu'il a été à nouveau déclaré, il a supprimé ces valeurs et a renvoyé à la place 3 valeurs vides, puis la valeur « Fred ». Ceci est dû au PRÉSERVER déclaration étant omise.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave