|
ぽんぽんさん、またまた私でごめんね
>今、ひとつのブックに10個のワークシートがあります。
>それぞれのシートには別のデータが存在しますが、シート全体の
>形態は同じです。
>それぞれのシートのE18:E21のデータ(Yの範囲)とB18:B21(Xの範囲)で
>散布図を書き、そこに近似曲線(多項式近似_2次)を書かせたいのです。
>下記に示すコードは[PL00005]というシートで「新しいマクロの記録」を使い
>マクロを作ったものです。
>これで、マクロの実行を行うとシート[PL00005]ではうまくいきますが
>他のシートでマクロの実行を行っても、同じようにシート[PL00005]に同じグラフが
>書かれることになります。
>それぞれのシートでそれぞれのシートのE18:E21のデータ(Yの範囲)とB18:B21(Xの範囲)を
>使ってグラフを書くにはどこをどう直せばよいでしょうか?
>(ちなみにシートの名前はPL00001〜PL00010です)
>検索機能でこのサイトの過去のものを見てみましたが、よくわかりませんでした。
>よろしくお願いいたします。
先にも書いたとおりループを使えばOKでしょ。
For Nextを使ってみると、こんな感じです。
>Sub 回帰曲線ACA11_2()
Dim i As Integer
For i = 1 To 10
Sheets("PL000" & Format(i, "00")).Select
> Charts.Add
> ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets("PL000" & _
Format(i, "00")).Range("E18:E21"), PlotBy :=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, _
Name:="PL000" & Format(i, "00")
ActiveChart.SeriesCollection(1).XValues = "=PL000" & _
Format(i, "00") & "!R18C2:R21C2"
> ActiveChart.SeriesCollection(1).Name = """ACA11"""
> With ActiveChart
> .HasTitle = True
> .ChartTitle.Characters.Text = "ACA11"
> .Axes(xlCategory, xlPrimary).HasTitle = True
> .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "ACA11 (ng/mL)"
> .Axes(xlValue, xlPrimary).HasTitle = True
> .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "O.D. (492-630nm)"
> End With
>
> ActiveChart.HasLegend = False
> ActiveChart.SeriesCollection(1).Trendlines.Add(Type:=xlPolynomial, Order:=2 _
> , Forward:=0, Backward:=0, DisplayEquation:=True, DisplayRSquared:=True _
> ).Select
Next
>End Sub
|
|