2009-12-02

VBAで別のプログラムに配列を渡す

VBAの一つのプログラムから何かの計算のために別のプログラムを呼び出す場合、計算する値が一つだけなら単にFunctionを呼び出せば良いです。しかし計算結果が複数の値の場合、Functionでは一つしか返せませんので、配列に値を入れて返して貰う必要があります。
Sub 呼ぶ側()
Dim a(2)
Call 配列(a)
Cells(1, 1) = a(1)
Cells(2, 1) = a(2)
End Sub

Sub 呼ばれる側(b)
b(1) = 1
b(2) = 10
End Sub
呼ぶ側でまず配列を用意してその名前を渡します。C流に言えばアドレスを渡しています。 呼ばれた側で計算した結果をその配列に代入すると、呼んだ側が用意した配列に値が入っています。

0 件のコメント: