VBA ArrayList - Comment créer ArrayList dans Excel VBA? (Modèle Excel)

Table des matières:

Anonim

Tableau VBA Excel

Les structures de données sont utilisées pour stocker une série de données dans des langages de programmation. Il se lie à la mémoire plutôt qu'à l'adresse. Une ArrayList est l'une des structures de données dans Excel. La comparaison avec des tableaux normaux dans Excel ArrayList est dynamique. Par conséquent, aucune déclaration initiale de taille n'est nécessaire. ArrayList ne fait pas partie de VBA, il est associé à une bibliothèque externe qui peut être utilisée avec VBA.

ArrayList peut être défini comme une liste d'un emplacement de mémoire à proximité. Où les valeurs sont récupérées à l'aide des numéros d'index. La liste commence à partir d'un numéro d'index «0», le premier élément sera inséré dans l'index «0» et le reste est suivi de 1, 2, 3, etc. ArrayList offre de nombreuses opérations intégrées, triant, ajoutant, supprimant, renverser, etc. en sont quelques-uns.

Ajout de la bibliothèque

Pour utiliser ArrayList dans le VBA, il doit inclure la bibliothèque « mscorlib.dll» fournie avec le framework .NET .

  • Appuyez sur F11 ou cliquez avec le bouton droit sur le nom de la feuille pour obtenir la fenêtre de code. Accédez à la fenêtre de code VBA, dans le menu principal, sélectionnez Outils .

  • Le menu d'outils contient l'option «références» et il se compose d'une liste de bibliothèques qui prennent en charge VBA pour inclure différents objets. Cliquez sur l'option Référence .

  • Il vous mènera à une fenêtre avec une liste de différentes bibliothèques qui prend en charge dans VBA et Excel. Faites défiler vers le bas pour trouver la « dll». Cochez pour confirmer la sélection, puis appuyez sur le bouton «OK».

Maintenant, la bibliothèque est incluse dans votre code VBA et prend en charge différentes méthodes associées à une liste de tableaux.

Comment créer VBA ArrayList dans Excel?

Voici les différents exemples pour créer VBA ArrayList dans Excel.

Vous pouvez télécharger ce modèle Excel VBA ArrayList ici - Modèle Excel VBA ArrayList

Tableau VBA Excel - Exemple # 1

Comment ajouter des valeurs à ArrayList à l'aide de VBA?

ArrayList agit comme une liste où nous pouvons ajouter des valeurs. Cela stockera automatiquement dans les différentes parties à partir de 0, 1, 2, etc. Les valeurs peuvent être ajoutées ou insérées dans ArrayList à l'aide de la méthode add.

Dans cet exemple, vous apprendrez à ajouter une liste de valeurs dans une ArrayList. Suivez les étapes ci-dessous pour ajouter ArrayList à l'aide du code VBA dans Excel.

Étape 1: pour ajouter une liste de valeurs à une ArrayList, créez une fonction arraylist1.

Code:

 Private Sub arraylist1 () End Sub 

Étape 2: Maintenant, nous voulons inclure la ArrayList dans la fonction en tant qu'objet où une liste est déclarée en tant que ArrayList.

Code:

 Private Sub arraylist1 () Dim alist As ArrayList End Sub 

Étape 3: Puisque c'est un objet pour l'utiliser, vous devez créer une instance de ArrayList. Définissez une nouvelle instance pour cet objet.

Code:

 Private Sub arraylist1 () Dim alist As ArrayList Set alist = New ArrayList End Sub 

Étape 4: Maintenant, l'utilisation de la propriété 'Add' d'une ArrayList ajoute les valeurs à la ArrayList. Où la liste est ajoutée aux valeurs d'index dans un ordre 0, 1, 2, 3 etc.

Code:

 Private Sub arraylist1 () Dim alist As ArrayList Set alist = New ArrayList alist.Add "192" 'index (0) alist.Add "168"' index (1) alist.Add "1" 'index (2) alist.Add Index "240" '(3) End Sub 

Étape 5: Pour vérifier si les valeurs ont été ajoutées à la liste, imprimons les valeurs du tableau à l'aide d'une boîte de message. Pour imprimer les valeurs, chaque index est imprimé car les valeurs sont stockées dans ces partitions.

Code:

 Private Sub arraylist1 () Dim alist As ArrayList Set alist = New ArrayList alist.Add "192" 'index (0) alist.Add "168"' index (1) alist.Add "1" 'index (2) alist.Add "240" 'index (3) MsgBox ("\\" & alist (0) & "." & Alist (1) & "." & Alist (2) & "." & Alist (3)) End Sub 

Étape 6: Appuyez sur F5 ou sur le bouton Exécuter pour exécuter le programme et les valeurs seront imprimées comme ci-dessous. Ici, une adresse IP est stockée dans ArrayList et pendant l'impression, les valeurs des notations supplémentaires sont concaténées pour former l'adresse IP dans un format approprié.

Erreur d'automatisation dans VBA

Il s'agit d'une erreur courante qui se produit lors de l'exécution d'une liste de tableaux. Une erreur d'automatisation peut rencontrer «Erreur d'exécution» -2146232576 (80131700) Erreur d'automatisation »

Cela est dû au fait que la version correcte du framework .NET n'est pas installée. Pour travailler avec ArrayList, vous devez avoir au minimum .NET 3.5 ou les versions supérieures de .NET Framework.

Tableau VBA Excel - Exemple # 2

Tri de ArrayList à l'aide du code VBA

ArrayList prend en charge différentes fonctions comme le tri, l'inversion, etc. cela aide à trier les valeurs insérées dans un ArrayList. Une fois que vous avez ajouté une liste dans ArrayList, il est possible d'inverser la liste insérée.

Suivez les étapes ci-dessous pour trier la liste de tableaux à l'aide du code VBA:

Étape 1: créez une fonction appelée arraysort1 pour effectuer le tri dans les valeurs insérées dans une liste de tableaux.

Code:

 Sub arraysort1 () End Sub 

Étape 2: Déclarez un objet «tableau» de ArrayList. Utilisez cet objet pour ajouter et trier les valeurs dans ArrayList.

Code:

 Sub arraysort1 () Dim arraysort As ArrayList End Sub 

Étape 3: Similaire au premier exemple, vous devez créer une nouvelle instance de l'objet déclaré. Définissez cette instance comme une nouvelle liste de tableaux.

Code:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList End Sub 

Étape 4: Maintenant, en utilisant la méthode «Add», insérez les éléments dans ArrayList. Qui ne possède aucun ordre sur les valeurs. Inséré au hasard quelques valeurs dans la liste.

Code:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" End Sous 

Étape 5: Pour noter la différence dans ArrayList, imprimons ArrayList après avoir inséré les valeurs et avant de les trier.

Code:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) End Sub 

Étape 6: Appuyez sur F5 sur le clavier ou sur le bouton Exécuter de la fenêtre de code pour exécuter le programme pour imprimer la liste de tableaux. L'ArrayList est imprimé dans le même ordre qu'il est inséré puisque nous utilisons les numéros d'index dans son ordre correct.

Étape 7: Maintenant, à cette liste, appliquez la propriété sort de ArrayList. Utilisez la méthode de tri pour trier la liste insérée. La propriété sort triera la liste de valeurs par ordre croissant par défaut.

Code:

 Sub arraysort1 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" arraysort .Sort MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arraysort (5)) End Sub 

Étape 8: Appuyez sur F5 ou sur le bouton Exécuter sous VBE pour exécuter ce code, où les valeurs sont triées et imprimées dans l'ordre de la plus petite à la plus grande.

Tableau VBA Excel - Exemple # 3

Inverser la liste de tableaux à l'aide du code VBA

Lorsque vous souhaitez inverser l'ordre des valeurs insérées dans une méthode inverse ArrayList est disponible. Cela inversera l'ordre de la liste de son ordre actuel. Maintenant, nous avons déjà trié la liste de tableaux dans l'exemple précédent, qui est dans l'ordre croissant.

Essayons d'inverser le tableau trié pour le rendre dans l'ordre décroissant. Utilisez la méthode inverse d'ArrayList pour ce faire.

Code:

 Sub arraysort2 () Dim arraysort As ArrayList Set arraysort = New ArrayList arraysort.Add "13" arraysort.Add "21" arraysort.Add "67" arraysort.Add "10" arraysort.Add "12" arraysort.Add "45" arraysort .Sort arraysort.Reverse MsgBox (arraysort (0) & vbCrLf & arraysort (1) _ & vbCrLf & arraysort (2) & vbCrLf & arraysort (3) _ & vbCrLf & arraysort (4) & vbCrLf & arrays (5) Sous 

Après avoir appliqué la méthode inverse, la liste de tableaux devient dans l'ordre décroissant et utilise la boîte de message pour imprimer le tableau inversé. La liste triée passe de grande valeur à petite valeur.

Choses dont il faut se rappeler

  • ArrayList est de nature dynamique; il ne nécessite pas de réinitialisation.
  • Différentes méthodes intégrées sont associées à ArrayList.
  • Comparé au tableau, ArrayList est facile à utiliser dans Excel VBA.
  • Les bibliothèques .NET de prise en charge doivent être incluses dans le VBA pour fonctionner avec ArrayList.
  • ArrayList est un emplacement de mémoire continue identifié à l'aide de valeurs d'index.

Articles recommandés

Ceci est un guide de VBA ArrayList. Nous discutons ici comment créer ArrayList dans Excel VBA avec des exemples pratiques et un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -

  1. Guide d'utilisation des tableaux VBA
  2. Excel Trier par numéro
  3. Comment trier dans Excel en utilisant VBA?
  4. Tutoriels sur le tri dans Excel