回答編集履歴

3

追記

2017/04/03 06:16

投稿

jawa
jawa

スコア3013

test CHANGED
@@ -13,3 +13,143 @@
13
13
 
14
14
 
15
15
  今回の完成形がイメージできれば回答しやすくなります。
16
+
17
+
18
+
19
+ 回答を受けて追記
20
+
21
+ ---
22
+
23
+ 普通の折れ線グラフのようなもので考えていましたが、散布図などの系列X/Yなどを持つグラフですね。失礼しました。
24
+
25
+
26
+
27
+ 以下のように、追加した系列に系列Yデータ(.Values)も設定してあげればできそうです。
28
+
29
+ ```
30
+
31
+ Sub GrapfGS()
32
+
33
+ Dim op As Worksheet, sn As Worksheet, i As Integer, names As String, xname As String
34
+
35
+ Dim cht As ChartObject
36
+
37
+ Dim rng As Range
38
+
39
+ Dim chart1 As Chart
40
+
41
+ Dim shtDat As WorkSheet '★追加
42
+
43
+
44
+
45
+ Set op = Workbooks("CAB-Grapf.xls").ActiveSheet
46
+
47
+
48
+
49
+ Application.ScreenUpdating = False
50
+
51
+
52
+
53
+ 'グラフ作成
54
+
55
+ Set cht = ActiveSheet.ChartObjects.Add(100, 100, 350, 260)
56
+
57
+ cht.Chart.ChartType = xlXYScatterSmoothNoMarkers
58
+
59
+ cht.Name = "G-S"
60
+
61
+ cht.Top = Range("H4").Top
62
+
63
+ cht.Left = Range("H4").Left
64
+
65
+ cht.Chart.Axes(xlValue).MinimumScaleIsAuto = True
66
+
67
+ cht.Chart.Axes(xlValue).MaximumScaleIsAuto = True
68
+
69
+ cht.Chart.Axes(xlCategory).MaximumScale = 300
70
+
71
+ cht.Chart.Axes(xlCategory).MinimumScale = 0
72
+
73
+ cht.Chart.Legend.IncludeInLayout = False
74
+
75
+ cht.Chart.Legend.Position = xlLegendPositionCorner
76
+
77
+ cht.Chart.Legend.Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorBackground1
78
+
79
+ cht.Chart.Axes(xlValue).TickLabels.NumberFormatLocal = General
80
+
81
+ cht.Chart.Axes(xlCategory).TickLabels.NumberFormatLocal = General
82
+
83
+ cht.Chart.HasTitle = True
84
+
85
+ cht.Chart.ChartTitle.Text = "G-S"
86
+
87
+
88
+
89
+ 'データ取得ループ
90
+
91
+ For i = 1 To Worksheets(1).Range("H1").Value
92
+
93
+ If i > 10 Then
94
+
95
+ MsgBox "データーがそんなにないよ(V)o¥o(V)"
96
+
97
+ Exit For
98
+
99
+ End If
100
+
101
+ Set shtDat = Worksheets(2 + i)
102
+
103
+ 'データ範囲の取得
104
+
105
+ If i = 1 Then
106
+
107
+ '初回は見出し列も取得
108
+
109
+ cht.Chart.SetSourceData Source:=shtDat.Range("T1014:T3014, N1014:N3014")
110
+
111
+ With cht.Chart.SeriesCollection(1)
112
+
113
+ .name = "系列" & i
114
+
115
+ .XValues = shtDat.Range("T1014:T3014")
116
+
117
+ .Values = shtDat.Range("N1014:N3014")
118
+
119
+ End With
120
+
121
+ Else
122
+
123
+ '2回目以降はデータ系列を追加
124
+
125
+ With cht.Chart.SeriesCollection.NewSeries
126
+
127
+ .name = "系列" & i
128
+
129
+ .XValues = shtDat.Range("T1014:T3014")
130
+
131
+ .Values = shtDat.Range("N1014:N3014")
132
+
133
+ End With
134
+
135
+ End If
136
+
137
+ 'グラフの名前をDATAシートから取得>Grapfシートを選択して貼り付け。
138
+
139
+ names = shtDat.Range("B" & 9).Value
140
+
141
+ Worksheets(2).Select
142
+
143
+ cht.Chart.SeriesCollection(i).Name = names
144
+
145
+ ```
146
+
147
+
148
+
149
+ 改修箇所は、shtDat変数を追加し、データ取得ループ内の処理を変更しました。
150
+
151
+
152
+
153
+ いま手元に動作確認できる環境がないので机上ロジックで申し訳ないですが、お試しください。
154
+
155
+

2

修正2

2017/04/03 06:16

投稿

jawa
jawa

スコア3013

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

1

修正

2017/04/03 04:30

投稿

jawa
jawa

スコア3013

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