[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『グラフを自動で作成したい』(ぽぽ)
縦棒グラフを自動で作成したいです。
やりたいことを説明すると、、、
Excelに以下の二つのシートを用意します。
・data
・graph
dataシートには、以下のようにデータを配置します。
1行目:項目番号
2行目:グラフ1に使用する系列1のデータ
3行目:グラフ1に使用する系列2のデータ
4行目:グラフ1に使用する系列3のデータ
5行目:グラフ2に使用する系列1のデータ
6行目:グラフ2に使用する系列2のデータ
7行目:グラフ2に使用する系列3のデータ
以降、グラフ3,4,5,・・・と配置していく。
graphシートでは、dataシートを参照してグラフ1,2,3・・・と作成します。
現状、グラフのデータ選択をdataシートから手動で選択しているのですが、グラフの数が多いため、オートフィルのようにうまく作成する方法はないのか知りたいです。
以上、よろしくお願いいたします。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
残りは、マクロでコピーして作成します
Option Explicit
Sub test()
Dim cht As Chart
Dim tbl As Range
Dim i As Long
Set cht = Charts(1)
Set tbl = Worksheets(1).Cells(1).CurrentRegion
For i = 5 To tbl.Rows.Count Step 3
cht.Copy after:=Charts(Charts.Count)
With ActiveChart
.SeriesCollection(1).Values = tbl.Rows(i)
.SeriesCollection(2).Values = tbl.Rows(i + 1)
.SeriesCollection(3).Values = tbl.Rows(i + 2)
End With
Next
End Sub
(マナ) 2018/06/27(水) 21:44
情報ありがとうございます。
本日、実行してみます。
(ぽぽ) 2018/06/28(木) 07:53
本日無事目的を達成することができました。
ありがとうございました。
自分の作成したグラフが埋め込みグラフとなっていて、グラフの移動をしてからでないと期待通りの動作をしないことが分かり、勉強になりました。
このマクロを実行すると、シートが作成するグラフの数量分作成されてしまうので、
次は、graphシート内に連続で作成できるようにしてみたいと思います。
大変助かりました。
ありがとうございました。
(ぽぽ) 2018/06/28(木) 21:48
Option Explicit
Sub test2()
Dim tbl As Range
Dim cho As ChartObject
Dim L As Double, T As Double, H As Double
Dim i As Long
Dim n As Long
Set tbl = Worksheets("data").Cells(1).CurrentRegion
Set cho = Worksheets("graph").ChartObjects(1)
L = cho.Left
T = cho.Top
H = cho.Height
For i = 5 To tbl.Rows.Count Step 3
n = n + 1
With cho.Duplicate
.Left = L
.Top = T + (H + 50) * n
With .Chart
.SeriesCollection(1).Values = tbl.Rows(i)
.SeriesCollection(2).Values = tbl.Rows(i + 1)
.SeriesCollection(3).Values = tbl.Rows(i + 2)
End With
End With
Next
End Sub
(マナ) 2018/06/28(木) 22:47
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.