質問するログイン新規登録

回答編集履歴

3

追記

2017/04/03 06:16

投稿

jawa
jawa

スコア3021

answer CHANGED
@@ -5,4 +5,73 @@
5
5
  今回実現したいのはどちらでしょうか?
6
6
  ※系列の追加はできているので後者(別データで別グラフを作成したい)かな?と思っています。
7
7
 
8
- 今回の完成形がイメージできれば回答しやすくなります。
8
+ 今回の完成形がイメージできれば回答しやすくなります。
9
+
10
+ 回答を受けて追記
11
+ ---
12
+ 普通の折れ線グラフのようなもので考えていましたが、散布図などの系列X/Yなどを持つグラフですね。失礼しました。
13
+
14
+ 以下のように、追加した系列に系列Yデータ(.Values)も設定してあげればできそうです。
15
+ ```
16
+ Sub GrapfGS()
17
+ Dim op As Worksheet, sn As Worksheet, i As Integer, names As String, xname As String
18
+ Dim cht As ChartObject
19
+ Dim rng As Range
20
+ Dim chart1 As Chart
21
+ Dim shtDat As WorkSheet '★追加
22
+
23
+ Set op = Workbooks("CAB-Grapf.xls").ActiveSheet
24
+
25
+ Application.ScreenUpdating = False
26
+
27
+ 'グラフ作成
28
+ Set cht = ActiveSheet.ChartObjects.Add(100, 100, 350, 260)
29
+ cht.Chart.ChartType = xlXYScatterSmoothNoMarkers
30
+ cht.Name = "G-S"
31
+ cht.Top = Range("H4").Top
32
+ cht.Left = Range("H4").Left
33
+ cht.Chart.Axes(xlValue).MinimumScaleIsAuto = True
34
+ cht.Chart.Axes(xlValue).MaximumScaleIsAuto = True
35
+ cht.Chart.Axes(xlCategory).MaximumScale = 300
36
+ cht.Chart.Axes(xlCategory).MinimumScale = 0
37
+ cht.Chart.Legend.IncludeInLayout = False
38
+ cht.Chart.Legend.Position = xlLegendPositionCorner
39
+ cht.Chart.Legend.Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorBackground1
40
+ cht.Chart.Axes(xlValue).TickLabels.NumberFormatLocal = General
41
+ cht.Chart.Axes(xlCategory).TickLabels.NumberFormatLocal = General
42
+ cht.Chart.HasTitle = True
43
+ cht.Chart.ChartTitle.Text = "G-S"
44
+
45
+ 'データ取得ループ
46
+ For i = 1 To Worksheets(1).Range("H1").Value
47
+ If i > 10 Then
48
+ MsgBox "データーがそんなにないよ(V)o¥o(V)"
49
+ Exit For
50
+ End If
51
+ Set shtDat = Worksheets(2 + i)
52
+ 'データ範囲の取得
53
+ If i = 1 Then
54
+ '初回は見出し列も取得
55
+ cht.Chart.SetSourceData Source:=shtDat.Range("T1014:T3014, N1014:N3014")
56
+ With cht.Chart.SeriesCollection(1)
57
+ .name = "系列" & i
58
+ .XValues = shtDat.Range("T1014:T3014")
59
+ .Values = shtDat.Range("N1014:N3014")
60
+ End With
61
+ Else
62
+ '2回目以降はデータ系列を追加
63
+ With cht.Chart.SeriesCollection.NewSeries
64
+ .name = "系列" & i
65
+ .XValues = shtDat.Range("T1014:T3014")
66
+ .Values = shtDat.Range("N1014:N3014")
67
+ End With
68
+ End If
69
+ 'グラフの名前をDATAシートから取得>Grapfシートを選択して貼り付け。
70
+ names = shtDat.Range("B" & 9).Value
71
+ Worksheets(2).Select
72
+ cht.Chart.SeriesCollection(i).Name = names
73
+ ```
74
+
75
+ 改修箇所は、shtDat変数を追加し、データ取得ループ内の処理を変更しました。
76
+
77
+ いま手元に動作確認できる環境がないので机上ロジックで申し訳ないですが、お試しください。

2

修正2

2017/04/03 06:16

投稿

jawa
jawa

スコア3021

answer CHANGED
@@ -1,7 +1,8 @@
1
- 質問のタイトルは「グラフを重ねたい(系列追加)ありますが、質問本文からは「X軸・Y軸ともに別の値をとりたい(つまり別のグラフを作成したい)」という風に読み取れます。
1
+ 質問のタイトルは「グラフを重ねたい⇒つまり系列追加したい)となっていますが、質問本文からは「X軸・Y軸ともに別の値をとりたい(つまり別のグラフを作成したい)」という風に読み取れます。
2
2
 
3
+ ちなみに提示いただいたソースコードは以前の質問の際にアドバイスさせていただいた「1つのグラフに系列を追加していくロジック」だと思います。
4
+
3
5
  今回実現したいのはどちらでしょうか?
6
+ ※系列の追加はできているので後者(別データで別グラフを作成したい)かな?と思っています。
4
7
 
5
- 提示いただいたソースコードは以前の質問の際にアドバイスさせていただいた「1つのグラフに系列を追加していくロジック」だと思いますが、今回行いたいことも系列の追加でしょうか?
6
-
7
8
  今回の完成形がイメージできれば回答しやすくなります。

1

修正

2017/04/03 04:30

投稿

jawa
jawa

スコア3021

answer CHANGED
@@ -1,4 +1,4 @@
1
- 質問のタイトルには「グラフを重ねたい」とありますが、質問本文からは「X軸・Y軸ともに別の値をとりたい(つまり別のグラフを作成したい)」という風に読み取れます。
1
+ 質問のタイトルには「グラフを重ねたい(系列の追加)」とありますが、質問本文からは「X軸・Y軸ともに別の値をとりたい(つまり別のグラフを作成したい)」という風に読み取れます。
2
2
 
3
3
  今回実現したいのはどちらでしょうか?
4
4