| 
    
     |  | 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
 
 
 |  |