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だと型はなんでもいい感じがしますが()は必要らしい。

まぁ、はまったので載せました。ではでは。



この記事が気に入ったらサポートをしてみませんか?