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

シートごとにレイアウトが同じ表がありまして、
VBAで各シートの表でグラフを作成したいのですが、
どうしても作成した時のシートのデータで出来てしまいます。
egシート1で表作成>シート2でVBA実行してもシート1でつくったグラフが複製されるだけ、、

どうすれば、選択中のシートのデータで表ができるのでしょうか??


一度グラフをコピーした上でデータを変える方法も試したのですが、
Sub Macro7()
ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveChart.SeriesCollection(1).Name = "=Sheet2!$B$29"
ActiveChart.SeriesCollection(1).Values = "=Sheet2!$B$31:$B$128"

結局シート2でしか出来ず、、です
「Sheet2!~」のところがいけないのはわかるのですが、、

この方法以外でもどんな方法でもよいのでどなたかお力かしてください。

A 回答 (2件)

たとえばこんなカンジで。



sub macro1()
 with activesheet.chartobjects.add(100, 100, 600, 300)
 .chart.charttype = xlcolumnclustered
 .chart.setsourcedata source:=activesheet.range("A29:B128")
 end with
end sub


#何グラフを描きたいのか,ぐらいは情報提供をしてください。
 といってもこのぐらいは追加質問しないで,新しいマクロの記録で希望の種類のグラフを描かせるサンプルマクロを録って,参考にしてください。

#ご利用のエクセルのバージョンも,必ずご相談に明記するよう憶えておいてください。バージョンによって手当てが変わる場合もあります。今後のご参考に。

この回答への補足

失礼しました。
使用しているのはExcel2007です。

表の一部ですが、分かり難くてすみません。
A列(時間)を横グラフの目盛として、
B列、D列のデータで線グラフを描きたいのです。

ABCD
1 時間温度水分量厚さ
2 min℃%mm
3 1274030
4 2303829.5
5 3353329.7
6 4353529.3
7 5343229.4
8 6363629.5
9 7383229.1
10 8373128.9
11 9363028.7
12 10393528.7
13 11413428.4
14 12433328.1
15 13462227.7
16 14512727.4
こんな感じのシートがたくさんあって、
どんどん作成していきたいのですが宜しくお願いします。

補足日時:2011/06/30 20:26
    • good
    • 0

エクセルバージョンも書かず、例データも質問に載せず、グラフの種類も書かず、質問して答えてクレとは、質問のマナーさえ勉強が必要。


マクロの記録で取ると
Sub Macro4()
Range("A1:B4").Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B4")
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
End Sub
(1)これでシート指定するならば、WorkSheets(”Sheet1"). Range("A1:B4").Select
(2)もうひとつ、シートでデータ範囲が変わることも多い。
Sub Macro4()
Worksheets("Sheet2").Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Worksheets("Sheet2").Range("A2").CurrentRegion
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet2"
End Sub
ーー
(3)連続して複数シートをグラフ挿入の対象にする。
Sub Macro5()
Dim sh
For Each sh In Sheets(Array("sheet1", "Sheet2"))
sh.Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=sh.Range("A2").CurrentRegion
ActiveChart.Location Where:=xlLocationAsObject, Name:=sh.Name
Next
End Sub
("sheet1", "Sheet2"))と2シートの場合だが、もっと多いときは、For Each sh in worksheetsなどの利用魚考える。
==
まだこの課題をするには速すぎる。VBAの中級の上ぐらいの課題だと思う。
ス越部bb給したら、上記(1)-(3)の点の質問か、その他に絞れるはず。
今ほVBAの本などの例題を見習ってレパートリーを増やす段階だろう。

またグラフにはシートとの関連で2種あることも勉強のこと。
グラフシートと、シートへの埋め込みグラフ。
    • good
    • 0

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