Tableau de retour de fonction VBA

Cet article montrera comment renvoyer un tableau à l'aide d'une fonction VBA.

Tableau de retour de fonction VBA

Lorsque vous utilisez des fonctions pour renvoyer des tableaux, je recommande fortement de déclarer des tableaux avec une variante de type :

123 Fonction ReturnArray() en tant que varianteFonction de fin

Tableaux de variantes sont plus faciles à travailler. La taille de la baie devient moins préoccupante.

Exemples de tableau de retour de fonction

Voici un exemple de fonction qui renvoie un tableau :

1234567891011121314151617181920212223242526272829 Fonction ReturnArray() en tant que varianteDim tempArr comme variante'Créer un nouveau tableau temporaireReDim tempArr (1 à 3, 1 à 2)'Attribuer des valeurs de tableautempArr(1, 1) = "Steve"tempArr(1, 2) = "Johnson"tempArr(2, 1) = "Ryan"tempArr(2, 2) = "Johnson"tempArr(3, 1) = "Andrew"tempArr(3, 2) = "Scott"'Tableau de sortieTableauReturn = TempArrFonction de finSous TestTransposeArray()Dim outputArr As Variant'Fonction de retour d'appeloutputArr = ReturnArray()'Test de sortieMsgBox sortieArr(2, 1)Fin du sous-marin

Notez que nous avons déclaré les tableaux avec type de données = variante pour éviter les problèmes de taille.

Cet exemple prend un tableau en entrée, transpose le tableau et génère le nouveau tableau transposé :

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 Fonction TransposeArray(MyArray As Variant) As VariantDim x aussi long, y aussi longDim maxX aussi long, minX aussi longDim maxY aussi long, minY aussi longDim tempArr comme variante'Obtenir les limites supérieure et inférieuremaxX = UBound(MyArray, 1)minX = LBound(MyArray, 1)maxY = UBound(MyArray, 2)minY = LBound(MyArray, 2)'Créer un nouveau tableau temporaireReDim tempArr (minX à maxX, minY à maxX)'Transposer le tableauPour x = minX à maxXPour y = minY à maxYtempArr(y, x) = MonTableau(x, y)Y suivantSuivant x'Tableau de sortieTableauTranspose = TableauTempFonction de finSous TestTransposeArray()Dim testArr (1 à 3, 1 à 2) en tant que varianteDim outputArr As Variant'Attribuer des valeurs de tableautestArr(1, 1) = "Steve"TestArr(1, 2) = "Johnson"testArr(2, 1) = "Ryan"TestArr(2, 2) = "Johnson"testArr(3, 1) = "Andrew"testArr(3, 2) = "Scott"Fonction de transposition d'appeloutputArr = TransposeArray(testArr)'Test de sortieMsgBox sortieArr(2, 1)Fin du sous-marin
wave wave wave wave wave