Devolver array desde la función en VBA
VBA es un lenguaje intermedio propietario. La abreviatura completa de VBA es Visual Basic for Applications, un lenguaje de programación avanzado basado y desarrollado por Microsoft.
Podemos usar VBA en diferentes aplicaciones como Access, Excel, Word, Outlook y PowerPoint.
Este artículo presentará cómo devolver un array desde una función en VBA con un ejemplo.
Devolver array desde la función en VBA
Hay muchas situaciones en las que podemos querer devolver un array de una función en VBA. La sintaxis para devolver un array de la función se muestra a continuación.
# VBA
Function arrayData() As Variant
End Function
Declaramos una función como un array Variant porque es más cómodo trabajar con ella. Veamos un ejemplo e intentemos crear un array dentro de una función y devolverla usando el sub
en VBA, como se muestra a continuación.
# VBA
Function arrayData() As Variant
Dim myArray As Variant
ReDim myArray(1 To 2, 1 To 3)
myArray(1, 1) = "Name"
myArray(1, 2) = "Iqra"
myArray(1, 3) = "Hasnain"
myArray(2, 1) = "Name"
myArray(2, 2) = "Ben"
myArray(2, 3) = "Stoke"
arrayData = myArray
End Function
Sub test()
Dim arr As Variant
arr = arrayData()
MsgBox arr(1, 2)
End Sub
Producción:
Como puede ver en el ejemplo anterior, podemos devolver fácilmente un array usando una función en VBA usando el array como Variante. Pero cuando obtenemos el array dentro del subprocedimiento y la mostramos usando MsgBox
, será la referencia de el array que devolvimos de la función, pero no el array real.
Entonces, si tratamos de cambiar el array, también cambiaremos la referencia de el array que obtuvimos de la función. Pero si el propósito es solo devolver el array usando una función, podemos hacerlo de esta manera.