|
>複数の値を返り値に持つようなユーザーファンクション
変数としては1つですが、配列を返すことができます。
' 呼び出す処理
Sub TEST()
Dim vntRet As Variant, IX As Integer
vntRet = fncTEST(7) ' ここで呼ぶ
If IsArray(vntRet) Then
IX = 0
Do While IX <= UBound(vntRet)
Debug.Print vntRet(IX)
IX = IX + 1
Loop
End If
End Sub
' 配列を返す関数(処理は適当)
Function fncTEST(intCnt As Integer) As Variant
Dim vntTbl() As String, IX As Integer, IX2 As Integer
Dim vntVal As Variant
vntVal = Array("A", "B", "C")
ReDim vntTbl(intCnt)
IX = 0
Do While IX <= intCnt
IX2 = IX Mod 3
vntTbl(IX) = vntVal(IX2)
IX = IX + 1
Loop
fncTEST = vntTbl
End Function
あと、Functionにしなくても、
引数をByRefで必要数宣言しておいて、
呼び出された方が引数に値をセットさせて返す方法もあります。
|
|