そういう時に、少し簡単にグラフにするマクロ 。
複数のシートに、それぞれXYデータがある場合
→http://foundknownanddone.blogspot.com/2014/03/excel-vba3d.html
使い方
- セル範囲を選ぶ
- マクロを実行する
コード
Sub createChartwithMultiXYdata() 'X軸データ、Y軸データの列が交互に並んだ選択範囲から散布図を作成するマクロ '使用方法:セル範囲を選択→このマクロを実行→グラフが作成される。 Dim targetSeries As Series Dim dest As String Dim data As Range 'シート名を退避しておく(埋め込みグラフにする時に移動先) dest = ActiveSheet.Name Set data = Selection 'グラフ作成 With Charts.Add .ChartType = xlXYScatterLines .Location Where:=xlLocationAsObject, Name:=dest '埋め込みグラフにしたくない場合は上の行を消す End With '系列にデータを設定(データはX、Yの順番で列ごとに並んでいる必要あり) For i = 1 To data.Columns.Count / 2 If i > ActiveChart.SeriesCollection.Count Then Set targetSeries = ActiveChart.SeriesCollection.NewSeries Else Set targetSeries = ActiveChart.SeriesCollection(i) End If targetSeries.XValues = data.Columns(i * 2 - 1) targetSeries.Values = data.Columns(i * 2) Next '余った系列を削除(セル範囲を選んで開始しているので、勝手に系列が出来てしまう。) For i = data.Columns.Count / 2 + 1 To ActiveChart.SeriesCollection.Count ActiveChart.SeriesCollection(data.Columns.Count / 2 + 1).Delete Next End Sub
変更履歴
2014/3/23 初版2014/3/30 プロシージャ名変更、Columnsを使って簡略な表記にした。
No comments :
Post a Comment