Comment effacer un tableau en VBA ?

Vous devez utiliser l’instruction « Erase » pour effacer un tableau dans VBA. Ajoutez le mot-clé « Erase » avant le nom du tableau que vous souhaitez effacer, mais notez que toutes les valeurs seront réinitialisées à partir du tableau. Dans le tableau suivant, vous avez 3 éléments et nous avons utilisé l’instruction erase pour tout effacer.

Sub myMacro1()

Dim myArray() As Long
ReDim myArray(4)

myArray(1) = 1
myArray(2) = 2
myArray(3) = 3
myArray(4) = 4

ReDim myArray(1 To 5)

MsgBox myArray(3)

End Sub
vba-clear-array

Et avec cette instruction, il a effacé tous les éléments du tableau, et lorsque nous utilisons Debug.Print (Immediate Window) pour obtenir l’élément du tableau, il ne reste plus rien.

Effacer le tableau dynamique

Lorsque vous utilisez ReDim, il supprime tous les éléments. Mais vous pouvez utiliser l’instruction preserve pour conserver certains des éléments et effacer partiellement un tableau. Dans l’exemple suivant, nous avons un tableau et nous avons partiellement effacé la quatrième valeur, puis redéfini les éléments sur 5.

Et si vous souhaitez effacer partiellement un tableau dynamique.

Sub myMacro2()

Dim myArray() As Long
ReDim myArray(1 To 4)

myArray(1) = 1
myArray(2) = 2
myArray(3) = 3
myArray(4) = 4

'erase position 4 but preserve the 1,2, and 3
ReDim Preserve myArray(1 To 3)

'redefine the array items to five
ReDim Preserve myArray(1 To 5)

MsgBox myArray(3)

End Sub

Les points importants

  1. Lorsque vous effacez un tableau fixe :
    1. Dans un tableau contenant toutes les valeurs d’une chaîne, l’instruction erase réinitialisera tous les éléments à (longueur variable) à la chaîne de longueur nulle «  » et (longueur fixe) à zéro.
    2. Dans un tableau contenant des valeurs numériques, l’instruction erase réinitialisera tous les éléments à zéro.
    3. Dans un tableau qui, en tant que type de données variant, les instructions d’effacement réinitialiseront tous les éléments à vide.
    4. Dans un tableau contenant des objets, l’instruction erase réinitialisera tous les éléments à rien.
    5. Dans un tableau contenant des objets, l’instruction erase réinitialisera tous les éléments s’il s’agissait d’une variable distincte.
  2. Lorsque vous effacez un tableau dynamique, l’instruction erase libère l’espace utilisé par le tableau dynamique.

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *