グラフをそれぞれのシートから数値をひっぱってきて重ねたいのですが、
上手くいきません。
下記のコードだとシート1の指定した系列をXとして使い、Yをシート毎ひっぱるのでグラフがおかしくなってしまいます。
XもYもシート毎にひっぱてきたいのですがどうすればよいのでしょうか?
データ範囲の取得 If i = 1 Then '初回は見出し列も取得 cht.Chart.SetSourceData Source:=.Range("T1014:T3014, N1014:N3014") cht.Chart.SeriesCollection(1).XValues = .Range("T1014:T3014") cht.Chart.SeriesCollection(1).Values = .Range("N1014:N3014") Else '2回目以降はデータ系列を追加 Set rng = .Range("N1014:N3014") cht.Chart.SeriesCollection.Add rng End If
全体のコード
Sub GrapfGS() Dim op As Worksheet, sn As Worksheet, i As Integer, names As String, xname As String Dim cht As ChartObject Dim rng As Range Dim chart1 As Chart Set op = Workbooks("CAB-Grapf.xls").ActiveSheet Application.ScreenUpdating = False 'グラフ作成 Set cht = ActiveSheet.ChartObjects.Add(100, 100, 350, 260) cht.Chart.ChartType = xlXYScatterSmoothNoMarkers cht.Name = "G-S" cht.Top = Range("H4").Top cht.Left = Range("H4").Left cht.Chart.Axes(xlValue).MinimumScaleIsAuto = True cht.Chart.Axes(xlValue).MaximumScaleIsAuto = True cht.Chart.Axes(xlCategory).MaximumScale = 300 cht.Chart.Axes(xlCategory).MinimumScale = 0 cht.Chart.Legend.IncludeInLayout = False cht.Chart.Legend.Position = xlLegendPositionCorner cht.Chart.Legend.Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorBackground1 cht.Chart.Axes(xlValue).TickLabels.NumberFormatLocal = General cht.Chart.Axes(xlCategory).TickLabels.NumberFormatLocal = General cht.Chart.HasTitle = True cht.Chart.ChartTitle.Text = "G-S" 'データ取得ループ For i = 1 To Worksheets(1).Range("H1").Value If i > 10 Then MsgBox "データーがそんなにないよ(V)o¥o(V)" Exit For End If With Worksheets(2 + i) 'データ範囲の取得 If i = 1 Then '初回は見出し列も取得 cht.Chart.SetSourceData Source:=.Range("T1014:T3014, N1014:N3014") cht.Chart.SeriesCollection(1).XValues = .Range("T1014:T3014") cht.Chart.SeriesCollection(1).Values = .Range("N1014:N3014") Else '2回目以降はデータ系列を追加 Set rng = .Range("N1014:N3014") cht.Chart.SeriesCollection.Add rng End If End With 'グラフの名前をDATAシートから取得>Grapfシートを選択して貼り付け。 names = Worksheets(2 + i).Range("B" & 9).Value Worksheets(2).Select cht.Chart.SeriesCollection(i).Name = names
X軸だけ参照シートが同じになってしまいます。
これをシート毎から参照したいです。
上記の画像でいいますとX軸はCIMO01425からでしがとってませんが
これをCIMP01425はCIMP01425で、CIMP01426はCIMP01426から参照したいです。
以前のグラフはX軸がシート毎、不変の数値だったので例えばシート1のA列の数値をX軸に指定して
Y軸はシート1のC列、シート2のC列とすればグラフが重なってできたのですが、
今回はX軸もY軸もそれぞれシート毎、数値が違います。
なのでX軸をシート1のC列、Y軸をシート1のB列で一つ、その上にX軸をシート2のC列、Y軸をシート2のB列で形成し重ねたいのです。
まとめますと、各シート毎の列から数値を拾ってグラフを作成し重ねたいという事になります。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/03 05:07
2017/04/03 07:01