VBA の関数から配列を返す
Iqra Hasnain
2022年8月18日
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 の関数を使用して、配列を簡単に返すことができます。ただし、サブプロシージャ内で配列を取得し、MsgBox
を使用して表示すると、関数から返された配列の参照になりますが、実際の配列にはなりません。
したがって、配列を変更しようとすると、関数から取得した配列の参照も変更されます。ただし、関数を使用して配列を返すことだけが目的の場合は、この方法で行うことができます。