VBA の関数から配列を返す

Iqra Hasnain 2022年8月18日
VBA の関数から配列を返す

VBA は独自の中間言語です。VBA の完全な略語は、Microsoft によってベースおよび開発された高度なプログラミング言語である Visual BasicforApplications です。

VBA は、Access、Excel、Word、Outlook、PowerPoint などのさまざまなアプリケーションで使用できます。

この記事では、VBA の関数から配列を返す方法を例を挙げて紹介します。

VBA の関数から配列を返す

VBA の関数から配列を返したい場合がたくさんあります。関数から配列を返す構文を以下に示します。

# VBA
Function arrayData() As Variant
End Function

関数を Variant 配列として宣言したのは、操作がより快適だからです。以下に示すように、例を見て、関数内に配列を作成し、VBA の sub を使用してそれを返すようにしてみましょう。

# 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

出力:

VBA 出力で配列関数を返す

上記の例からわかるように、配列をバリアントとして使用する VBA の関数を使用して、配列を簡単に返すことができます。ただし、サブプロシージャ内で配列を取得し、MsgBox を使用して表示すると、関数から返された配列の参照になりますが、実際の配列にはなりません。

したがって、配列を変更しようとすると、関数から取得した配列の参照も変更されます。ただし、関数を使用して配列を返すことだけが目的の場合は、この方法で行うことができます。

関連記事 - VBA Array