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