• ベストアンサー

EXCELのマクロで出来ますか?

散布図で近似曲線グラフを作成しました。 この近似曲線の書式設定で[グラフに数式を表示する(E)]を選択すると、 グラフに y = ax2 + bx + c という数式が出ます。 この数式をマクロで計算することは出来ないのでしょうか? 例えば、[セルA1]にxを入力したら[グラフA]のyの値が[セルB1]に算出されるような 便利なマクロ組むことは出来ますか? 初心者で質問が下手ですみませんm(_ _)m

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

  • ベストアンサー
noname#29107
noname#29107
回答No.1

ちょっとテストが不十分なので、注意して使用して下さい。 対象のチャートを選択して実行すると、Sheet2のB1セルにA1セルをxとした近似曲線の計算式をセットします。 数式が表示されていないと、エラーになります。最初の系列、最初の近似曲線しか見ていません。 Sub test() Dim MyChart As Chart, siki As String, siki2 As String Dim joSW As Boolean, numSW As Boolean, expSW As Boolean 'Set MyChart = ActiveChart siki = ActiveChart.SeriesCollection(1).Trendlines(1).DataLabel.Text joSW = False numSW = False expSW = False siki2 = "" For i = 1 To Len(siki)   ixchar = Mid(siki, i, 1)   If IsNumeric(ixchar) Then     numSW = True     If joSW Then       joSW = False       siki2 = siki2 & "^" & ixchar     Else       siki2 = siki2 & ixchar     End If   Else   If ixchar = "L" Then     If numSW Then       numSW = False       siki2 = siki2 & "*" & ixchar     Else       siki2 = siki2 & ixchar     End If   Else   If ixchar = "x" Then     joSW = True     If numSW Then       numSW = False       siki2 = siki2 & "*" & ixchar     Else       siki2 = siki2 & ixchar     End If   Else   If ixchar = "e" Then     expSW = True     If numSW Then       numSW = False       siki2 = siki2 & "*EXP("     Else       siki2 = siki2 & "EXP("     End If   Else   If joSW Then     joSW = False     If ixchar <> " " Then       If ixchar = ")" Then         siki2 = siki2 & ixchar       Else         siki2 = siki2 & "^" & ixchar       End If     End If   Else     If ixchar <> " " Then       siki2 = siki2 & ixchar     End If   End If   End If   End If   End If   End If Next i If expSW Then   siki2 = siki2 & ")" End If siki = Replace(Replace(siki2, "y=", ""), "x", "A1") Sheets("Sheet1").Range("B1").Formula = "=" & siki End Sub