プロが教えるわが家の防犯対策術!

図の中で表現されている5次の式の係数(6個あります)を
セルの中に書き出すマクロは可能でしょうか。可能であれば方法を
ご教授ください。

さらに可能であれば、図から得られる近似式(図のグラフ線図を
右クリックして項目を設定することで得られる)の表示をVBAで可能に
したいのですが。これもお分かりであればお願いします。

A 回答 (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
    • good
    • 1
この回答へのお礼

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

お礼日時:2008/08/17 17:04

セルへの取り込みは、グラフ上からでなく、LINEST関数を用いるのが良さそうです。

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

参考URL:http://support.microsoft.com/kb/402428/ja
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/08/17 16:30

>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
    • good
    • 0
この回答へのお礼

早速のご教授ありがとうございました。後半の部分はマクロで追尾してコードを組んでいるところでしたが、アドバイスの方が簡潔ですね。

可能であればrange"A1:A6"に式ではなくて係数を取り込みたいのですが。
(ここが質問の本質です。参考URLのグラフはデータによって変化します。その変化に対応できるようにしたいのです。6次の次数は一定です)

お礼日時:2008/08/17 15:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!