VBAのFunctionで戻り値を配列にするときの注意点
VBAのFunctionで戻り値を配列にしたときにはまりました。
Functionの型指定
Functionの型は、本文で定義した配列の型と同じにします。当たり前じゃないか、という話もありますが、FunctionとDimとでは型の記述方法が異なるため混乱します。
本文での型指定(配列)
本文(Dim文)では変数名に( )が付きます。
Dim domain() As Variant
Function内での型指定・受け渡し(配列)
Function内での記述は3つ程注意しなくてはいけないポイントがあります。まずFunction冒頭での型指定は、DImと異なり変数名ではなく型の方に( )がつきます。
Function setDomainArray(fileName As String) As Variant()
なんだかなぁ・・・
さらにこのFunction内部の配列は、本文、Function冒頭と同じ型で定義しなくてはいけない。
ディクショナリに入れる配列でも同様で、ディクショナリに入れた配列の方が、Functionと本文とで違っていてはまりました・・・型はおなじにしよう!(当たり前かw)
Dim arr() As Variant
そして、返り値を渡す変数名の方には( )をつけます(ディクショナリでは何もつけなかったけど、Function冒頭で( )をつけたら( )をつけるっぽい)。
setDomainArray = arr()
Exit Funciton
Variantだと型はなんでもいい感じがしますが()は必要らしい。
まぁ、はまったので載せました。ではでは。
この記事が気に入ったらサポートをしてみませんか?