• 締切済み

エクセルマクロでのグラフ作成について

エクセルのマクロでグラフを作成したいのですが 設定したい値のセルが行も列も飛び飛びなんです。このような場合、どうやってセルを設定すればいいか教えてください。 セルの自動マクロ記録でやってみると、例えばですが ActiveChart.SetSourceData Source:=Sheets("グラフ").Range( _ "A5,A10,A15,A20,A25,A30,A35,D5,D10,D15,D20,D25,D30,D35"), PlotBy:= xlColumns このような設定で希望通りのグラフが出来上がります。 A列(X軸)とD列(Y軸)の値で、列は固定で数行置きのデータでのグラフが作りたいのです。 しかもどの行かは固定ではありませんので、セルアドレスをそのまま入力するのではなく、Cells(,) で設定したいのですが、Unionを使ってみたり、色々試したのですが、うまくできません。 おわかりの方教えて頂けませんでしょうか。 よろしくお願いいたします。

みんなの回答

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

動作確認はしてないけど、貴方の説明を読んで日本語の部分だけで 考えて、 > しかもどの行かは固定ではありませんので、セルアドレスを > そのまま入力するのではなく、Cells(,) で設定したいのですが、 > Unionを使ってみたり、色々試したのですが、うまくできません。 Cells(,) で取れる Range の Address でセルアドレスを 編集するだけで、マクロの記録コードと同じ手順を踏めるのでは? とは思いました。 Cells(,) の戻り値も Range だし、 > Sheets("グラフ").Range( "A5,A10,~省略~"), も当然 Range だし、Union も Range が返ってくるので 普通にできても不思議じゃないのですが。。。 それぞれで取れる Range のプロパティなどを1つ1つ確認 していけば、何か設定が違うのかもしれませんが、そこまで やってる時間は無いので、調べる気があるなら調べてみて下さい。 まぁ、飛び飛びのセルで系列まで判断するところがそもそも 無茶な命令をしている気はしますが。 本来は SetSourceData 一発じゃなく、系列ごとの設定を すべきなのかも。そのあたりの問題な気がします。

noname#223023
質問者

お礼

MARU4812さん ご回答ありがとうございました、 仰るように、自動記録で、A5,A10,A15,,,と設定してあるところに、 Cells(,),,, と設定してみたのですが、Rangeメソッドは失敗しました。 というエラーメッセージが出てきます。 本来ならばつながっているデータでグラフを作成したいのですが、そうできないため試行錯誤しています。 自動記録で出来たから出来るのではないかと思うのですが、 うまくいかないので困っています。。。 どなたかおわかりの方がいらっしゃいましたらお願い致します。

関連するQ&A

専門家に質問してみよう