• ベストアンサー

エクセルの散布図の近似式の係数をセルに取り込む

図の中で表現されている5次の式の係数(6個あります)を セルの中に書き出すマクロは可能でしょうか。可能であれば方法を ご教授ください。 さらに可能であれば、図から得られる近似式(図のグラフ線図を 右クリックして項目を設定することで得られる)の表示をVBAで可能に したいのですが。これもお分かりであればお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

係数を取り出すのは下記のようなコードでどうでしょうか。 使えるようなら、マクロに組み込んでみてください。 Sub test()   Dim str As String   Dim strv As Variant   Dim i As Integer   str = "y = 0.0452x5 - 8.6275x4 + 658.58x3 - 25133x2 + 4795.20x - 4E+0.6"   strv = Split(str, " ")   For i = 0 To UBound(strv)     If strv(i) Like "*E+*" Then       MsgBox strv(i)     Else       If Val(strv(i)) > 0 Then         MsgBox Val(strv(i))       End If     End If   Next i End Sub

catshoes01
質問者

お礼

ありがとうございます。ちょっと試してみます。 これが可能になると数値演算処理に現実味が・・・。 うまくうけば明後日あたりに報告します。

その他の回答 (2)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

セルへの取り込みは、グラフ上からでなく、LINEST関数を用いるのが良さそうです。参考URLは相当前のバージョンのXL対象ですが、おそらく最近のバージョンにも通用すると思います。 linest 多項式 エクセルで検索すると沢山ヒットするので、もっと分かりやすい解説記事があるかもしれません。

参考URL:
http://support.microsoft.com/kb/402428/ja
catshoes01
質問者

お礼

ありがとうございました。当方はグラフも表示する必要があるので(縦横目盛りを揃えて)このグラフを活かした手法をとりたいと思います。 Linest関数は便利そうですね。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

>5次の式の係数(6個あります)を >セルの中に書き出すマクロは可能でしょうか。 下記のようなコードで系列1の近似式を取り込めます。 Range("A1").Value = ActiveChart.SeriesCollection(1).Trendlines(1).DataLabel.Text >この図から得られる近似式(図のグラフ線図を >右クリックして項目を設定することで得られる)の表示を >VBAで可能にしたいのですが 下記のようなコードで、近似曲線を追加して近似式を表示します。 ActiveChart.SeriesCollection(2).Trendlines.Add.Select With Selection   .Type = xlPolynomial   .Order = 2   .DisplayEquation = True End With

catshoes01
質問者

お礼

早速のご教授ありがとうございました。後半の部分はマクロで追尾してコードを組んでいるところでしたが、アドバイスの方が簡潔ですね。 可能であればrange"A1:A6"に式ではなくて係数を取り込みたいのですが。 (ここが質問の本質です。参考URLのグラフはデータによって変化します。その変化に対応できるようにしたいのです。6次の次数は一定です)

関連するQ&A