Devolver array desde la función en VBA

Iqra Hasnain 18 agosto 2022
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:

Función de array de retorno en la salida de VBA

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.

Artículo relacionado - VBA Array