- ベストアンサー
マクロでグラフのデーター範囲の変更
- マクロを使用してグラフのデータ範囲を変更する方法を教えてください。
- 各系列に対してデータ範囲をセルの最終行まで自動的に変更するマクロを作成したいのですが、どのように指定すれば良いでしょうか。
- SetSourceDataを使用しても各系列を指定する方法が分からず困っています。お助けいただけると幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ん? 元のご相談で >SetSourceDataとかで挑戦しようとしたのですが、 というお話でしたので,その流れで回答しています。回答さしあげた内容の確認結果はどうだったのでしょうか? 手順の確認: 新しいマクロの記録を開始する グラフ1を選ぶ 元のデータのデータ範囲で新しいA1:D?のセル範囲を設定する >マクロを記録したのですが SeriesCollection(1)等の記述をどのように setsourcedataに繋げるのかが分からず又、困ってしまいました。 それはご相談投稿前にあなたがやっていたこととは,また全然違うアプローチです。 元のご相談と,それに応じて回答したのはグラフのデータ範囲を直す方法ですが,今度あなたがやってるのは個別の系列のセル範囲を付け替える方法です。 そうならそうと(あるいは最初からそう)言ってくれていれば,ちょうど昨日同じご相談がありましたのでご参考に。 http://okwave.jp/qa/q6802704.html
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
準備: 新しいマクロの記録を開始する 実際に一つグラフを選び,グラフメニューの元のデータから元のデータの範囲を付け替える操作を行い,サンプルグラフを採ってみる 特に,各グラフがマクロで実際に何て言う名前(若しくは番号)で認識されているのか,しっかり確認する サンプルグラフをお手本に,実際に必要な「下端のデータ位置の調べ方」をよく検討した上で,たとえば下記のようなマクロに修正する。 sub macro1() dim r as long with worksheets("Sheet1") r = .range("A65536").end(xlup).row .chartobjects("グラフ 1").chart.setsourcedata source:=.range("A1:D" & r), plotby:=xlcolumns r = .range("E65536").end(xlup).row .chartobjects("グラフ 2").chart.setsourcedata source:=.range("E1:H" & r), plotby:=xlcolumns r = .range("I65536").end(xlup).row .chartobjects("グラフ 3").chart.setsourcedata source:=.range("I1:L" & r), plotby:=xlcolumns end with end sub
補足
keithinさん 返信有難うございます。 マクロを記録したのですが SeriesCollection(1)等の記述をどのように setsourcedataに繋げるのかが分からず又、困ってしまいました。 もし、よろしければ教えて頂けませんでしょうか。 下記が記録した内容です。 ActiveSheet.ChartObjects("グラフ 1").Activate ActiveChart.ChartArea.Select ActiveChart.SeriesCollection(1).Values = "=データー!R1C1:R96C1"
お礼
keithinさん すみませんでした。 >グラフのデータ範囲を直す方法ですが,今度あなたがやってるのは個別の系列のセル範囲を付け替える方法です。 内容を間違えて質問していたようです。無知な為に大変お手数をお掛けしてすみません。 系列のセル範囲を付け替える方法です。で解決できました。本当に有難うございます。 SetSourceDataを本で調べたりしたら全然違う事をやっていたようです。