dポイントプレゼントキャンペーン実施中!

仕事上散布図を毎日使っています。
1点ごとに系列を分けて表示させたいため、
シート上ではx軸、y軸のデータを別々の行に横並びで入力した後、
1つ1つ系列を追加するという方法をとっています。
この作業を簡略化する方法がありましたらぜひ教えてください!

系列を分けなければセルを一括選択で作成できるのですが。。。

A 回答 (4件)

進んでいますか?


解らなければ遠慮なく捕捉で質問してください。

例えば
シート上にグラフオブジェクトを作成後、複数の系列を追加する、という流れでどうでしょうか。

Dim i As Integer

With ActiveSheet.Range("グラフオブジェクト描画セル範囲")
With ActiveSheet.ChartObjects.add(.left, .Top, .Width, .Height).Chart '--グラフオブジェクト
.ChartType = xlXYScatter '--散布図
For i = 0 To 9 '--系列数(この例では10個になる)
With .SeriesCollection.NewSeries '--系列を追加
.Name = Range("系列名開始セル").Offset(,i)
.XValues = Range("X値開始セル").Offset(,i)
.Values = Range("Y値開始セル").Offset(,i)
End With
Next i
End With
End With
    • good
    • 0

Excelには「新しいマクロの記録」という素晴らしい機能が添付されています。


グラフ作成の実作業を「新しいマクロの記録」してみてください。コードが得られます。
得られたコードは、そのままでは汎用性に乏しいので編集を加えなければなりません。
マクロ化に興味が御有りなら、得られたコードを提示してみてください。

≪ご存じとは思いますが≫
マクロについて
http://homepage3.nifty.com/hhokadakek5/excel/kin …
[XL2003] Excel のマクロ記録機能について
http://support.microsoft.com/kb/888592/ja
≪参考までに≫
グラフ操作関連のテクニック
http://moug.net/tech/exvba/0021.htm
    • good
    • 0

マクロはどうですか?


セルを一括選択で作成した系列数が1つのグラフがあるとして
そのグラフを選択して置いて実行してください。
系列を複数系列化します。

Dim fml As String
Dim n As Integer
Dim xrng As Range
Dim yrng As Range
Dim i As Integer

With ActiveChart
.ChartType = xlXYScatter
With .SeriesCollection(1)
fml = .Formula
n = .Points.Count
.Delete
End With
Set xrng = Range(Split(fml, ",")(1))
Set yrng = Range(Split(fml, ",")(2))
For i = 1 To n
With .SeriesCollection.NewSeries
.Name = ""
.XValues = xrng(i)
.Values = yrng(i)
End With
Next i
End With

もちろん、素から複数系列のグラフを作成するマクロも組むこともできます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
ほぼワンクリックで系列を分けることができますね。

業務では下に示すような形のデータのシートから必要な値を選んで散布図にすることも多いです。(例えば系列aとcのみ散布図にする)


系列の名前a 系列の名前b 系列の名前c 系列の名前d
:      :      :     :
他データ   他データ  他データ   他データ
:      :      :     :
x軸データa  x軸データb  x軸データc x軸データd
  :      :      :     :
他データ   他データ   他データ  他データ
:      :      :     :
y軸データa  y軸データb y軸データc  y軸データd
:      :      :     :


行、列共にとびとびになっているわけですが、このようなケースに対応したマクロを組むことはできるでしょうか。散布図作成→教えていただいたマクロ実行→必要ない系列を消す、がベストな方法でしょうか。
マクロの経験がほとんどなくお任せの質問になってすいません。

お礼日時:2010/03/14 21:35

「楽できる」という意味では



   A   B  C  D列
1  X   X1値 X2値 X3値
2  Y   Y1値 Y2値 Y3値
3 X再掲  =B1  =C1  =D1
4 Y1   =B2
5 Y2      =C2
6 Y3         =D2

のように用意しておいて3:6行で散布図を描かせておき,1:2行に毎日データを投下します。
(グラフ作成の操作に慣れてくれば,3行目X再掲は不要です)


その意味では実は,
>シート上ではx軸、y軸のデータを別々の行に横並びで入力した後、
>1つ1つ系列を追加するという方法をとっています。

手順を逆に。
1.作成済みの昨日のシートとグラフをシートごと複製する
2.その昨日のデータのセルに,今日のデータを上書きで貼り込む
3.自動で今日のグラフに更新される
などのようでも。
    • good
    • 0
この回答へのお礼

すぐに回答していただきありがとうございます。
要するに別途グラフ作成用のセルを作るということですね。あらかじめこうしておけば使い回しもできると。
この方法なら作業効率かなり上がりそうです。
excelではひな形を作っておくことが重要なのですね。
まさに求めていた回答でした。ありがとうございました。

お礼日時:2010/03/13 09:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!