Tableau de chaînes VBA

Tableau de chaînes Excel VBA

Dans VBA, le tableau de chaînes n'est rien d'autre qu'une variable de tableau qui peut contenir plus d'une valeur de chaîne avec une seule variable.

Pour un exemple, regardez le code VBA ci-dessous.

Code:

 Sub String_Array_Example () Dim CityList (1 To 5) As Variant CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Hyderabad" CityList (5) = "Orissa" MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5) End Sub 

Dans le code ci-dessus, j'ai déclaré comme variable de tableau et attribué la longueur d'un tableau de 1 à 5.

 Dim CityList (1 à 5) comme variante 

Pour cette variable de tableau, j'ai attribué 5 noms de villes en mentionnant chaque nombre de tableaux entre parenthèses.

CityList (1) = "Bangalore" CityList (2) = "Mumbai" CityList (3) = "Kolkata" CityList (4) = "Hyderabad" CityList (5) = "Orissa"

Ensuite, j'ai écrit un code pour afficher ces noms de villes dans la boîte de message.

MsgBox CityList (1) & "," & CityList (2) & "," & CityList (3) & "," & CityList (4) & "," & CityList (5)

Lorsque j'exécute ce code, nous obtenons une boîte de message qui montre tous les noms de villes dans une seule boîte de message.

Nous savons tous que cela a permis de gagner beaucoup de temps sur notre calendrier en éliminant la tâche de déclarer des variables individuelles pour chaque ville. Cependant, une autre chose que vous devez apprendre est que nous pouvons toujours réduire le code de ligne que nous écrivons pour les valeurs de chaîne. Voyons comment nous écrivons du code pour les tableaux de chaînes VBA.

Exemples de tableau de chaînes dans Excel VBA

Voici les exemples d'un tableau de chaînes Excel vba.

Vous pouvez télécharger ce modèle Excel de tableau de chaînes VBA ici - Modèle Excel de tableau de chaînes VBA

Exemple 1

Comme nous l'avons vu dans le code ci-dessus, nous avons appris que nous pouvons stocker plus d'une valeur dans la variable en fonction de la taille du tableau déterminée.

Maintenant, ce que nous devons faire est de ne pas décider de la longueur du tableau bien à l'avance.

Code:

 Sub String_Array_Example1 () Dim CityList () As Variant End Sub 

Comme vous pouvez le voir ci-dessus entre parenthèses, je n'ai écrit aucune longueur. Maintenant, pour cette variable, insérons des valeurs en utilisant la fonction VBA ARRAY.

À l'intérieur du tableau, transmettez les valeurs entre guillemets, séparés par une virgule (,).

Code:

 Sub String_Array_Example () Dim CityList () As Variant CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") End Sub 

Maintenant, conservez l'ancien code pour afficher le résultat des noms de villes dans la boîte de message dans VBA.

Code:

 Sub String_Array_Example1 () Dim CityList () As Variant CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") MsgBox CityList (0) & "," & CityList (1) & " , "& CityList (2) &", "& CityList (3) &", "& CityList (4) End Sub 

Une modification que j'ai apportée au code ci-dessus est que nous n'avons pas décidé de la limite inférieure et de la limite supérieure d'une variable de tableau et que nous avons utilisé le nombre de tableaux de fonctions ARRAY commençant à 0 et non à 1.

C'est donc la raison pour laquelle nous avons mentionné les valeurs comme CityList (0), ClityList (1), CityList (2), CityList (3) et CityList (4).

Maintenant, exécutez le code via la touche de raccourci Excel F5 ou manuellement, nous obtenons le même résultat que celui obtenu avec le code précédent.

Exemple # 2

Tableau de chaînes VBA avec fonctions LBOUND et UBOUND

Si vous ne souhaitez pas afficher toute la liste des villes dans une seule boîte de message, vous devez inclure des boucles, définissez une autre variable pour les boucles.

Maintenant, pour inclure la boucle FOR NEXT, nous ne savons pas combien de fois nous devons exécuter le code, dans ce cas, nous pouvons le décider comme 5 fois, mais ce n'est pas la bonne façon d'aborder le problème. Alors que diriez-vous de l'idée de l'identificateur automatique de longueur de tableau de niveau inférieur et supérieur ???

Lorsque nous ouvrons la boucle FOR NEXT, nous décidons généralement que la longueur de la boucle est de 1 à 5 ou de 1 à 10 selon la situation. Au lieu d'entrer les nombres manuellement, utilisons les fonctions LBOUND et UBOUND pour décider automatiquement de la valeur inférieure et de la valeur supérieure.

Pour LBound et Ubound, j'ai fourni le nom du tableau, à savoir CityList. VBA LBound identifie la valeur inférieure de la variable de tableau et la fonction VBA UBound identifie la valeur supérieure de la variable de tableau.

Maintenant, affichez la valeur dans la boîte de message, au lieu d'insérer le numéro de série, laissez la variable de boucle «k» prend automatiquement la valeur du tableau.

Code:

 Sub String_Array_Example1 () Dim CityList () As Variant Dim k As Integer CityList = Array ("Bangalore", "Mumbai", "Kolkata", "Hyderabad", "Orissa") For k = LBound (CityList) To UBound (CityList) MsgBox CityList (k) Suivant k End Sub 

Maintenant, la boîte de message affichera chaque nom de ville séparément.

Exemple # 3

Tableau de chaînes VBA avec fonction Split

Supposons maintenant que vous ayez des noms de villes comme ci-dessous.

Bangalore, Mumbai, Kolkata, Hydrabad, Orissa

Dans ce cas, toutes les villes sont combinées avec les deux points séparant chaque ville. Dans de tels cas, nous devons utiliser la fonction SPLIT pour séparer chaque ville.

Pour Expression, fournissez la liste des villes.

Code:

 Sub String_Array_Example2 () Dim CityList () As String Dim k As Integer CityList = Split ("Bangalore; Mumbai; Kolkata; Hydrabad; Orissa", For k = LBound (CityList) To UBound (CityList) MsgBox CityList (k) Next k End Sous 

L'argument suivant est «Délimiteur», c'est-à-dire quel est le caractère qui sépare chaque ville des autres villes, dans ce cas, «Colon».

Code:

 Sub String_Array_Example2 () Dim CityList () As String Dim k As Integer CityList = Split ("Bangalore; Mumbai; Kolkata; Hydrabad; Orissa", ";") For k = LBound (CityList) To UBound (CityList) MsgBox CityList (k ) Suivant k End Sub 

Désormais, les valeurs de fractionnement de la fonction SPLIT déterminent également la longueur de tableau la plus élevée.

Choses à retenir

  • LBOUND et UBOUND sont des fonctions permettant de déterminer les longueurs des tableaux.
  • La fonction ARRAY peut contenir de nombreuses valeurs pour une variable déclarée.
  • Une fois si vous souhaitez utiliser la fonction ARRAY, ne décidez pas de la longueur du tableau.