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