|
Cooさん、こんにちは
>ユーザー関数を作成してみたいと考えています。
>今、A列目に1行からN行まで任意のデータがB列目に1行からN行まで任意のデータがC列目の1行目にも任意のデータが入っています。
>Function test(配列x,配列y,z) as double・・・(1)
>このA列とB列のデータを配列指定で、C列のデータは単体で読み込んでその後のマクロに
>データを使いたいのですが、どのように(1)式をどのように記述すればよいのでしょうか?
>
>配列x x(1)=A1 x(2)=A2 ・・・x(N)=AN
>配列y y(1)=B1 y(2)=B2 ・・・y(N)=BN
>z z=C1
>
>どなたかご指導よろしくお願いいたします。
配列を作るところはOKですか?
関数の呼び方はこんな感じですが、マクロからの呼び出しでいいんですよね。
#ワークシートで使うならチョッと違います。
標準モジュールに貼り付けてお試しください。(パクリ^^;)
Sub Main()
Dim x(5) As Double
Dim y(5) As Double
Dim z As Integer
Dim i As Integer
For i = 1 To 5
x(i) = i
y(i) = i * 2
Next
z = 5
MsgBox test(x(), y(), z)
End Sub
Function test(x() As Double, y() As Double, z As Integer) As Double
Dim temp As Double
Dim i As Long
Dim j As Long
For i = 1 To UBound(x())
For j = 1 To UBound(y())
temp = temp + x(i) * y(j)
Next
Next
temp = temp * CDbl(z)
test = temp
End Function
|
|