|
さっきの補足というか、おまけというか。
>>エクセルマクロでワークシート上のデータから回帰直線の傾きと切片を求めたいと
>>思っています。
>>a = WorksheetFunction.LinEst(Range("A1:A5"), Range("B1:B5"), True, False)
>LINESTワークシート関数のヘルプによると、
> 傾き: INDEX(LINEST(既知の y,既知の x),1)
> y切片:INDEX(LINEST(既知の y,既知の x),2)
>ということなので、それをそのままVBAで表現すると・・・
下のようにLinEst関数の戻り値をVariant変数で受けると、INDEXは使わなくてもいいです。
Sub test()
Dim rx As Range, ry As Range, dt As Variant
With Application.ActiveSheet
Set rx = Range("B1:B5") 'X
Set ry = Range("A1:A5") 'Y
End With
'Variant(Array)で受け取る
With Application.WorksheetFunction
dt = .LinEst(ry, rx)
End With
'結果
MsgBox dt(1), vbInformation, "傾き"
MsgBox dt(2), vbInformation, "y切片"
'
Set rx = Nothing: Set ry = Nothing
End Sub
こんな感じです。
|
|