• ベストアンサー

Excelマクロ:折れ線グラフの行範囲を可変

Excel2010を使用しています。 マクロを記録して折れ線グラフを作ろうとしていますが、マクロを記録出来ないところがあるらしくマクロを実行できません。 マクロを使用するのが初めてで、VBAは勉強中の為、自力での組み立てが出来そうにありません。 どうかお力を貸して頂けないでしょうか。 sheetによって行の数に違いが有る為、行のみを可変範囲設定出来ればと思っています。 1行目に系列が表示しており、2行目からはすべて数字となっています。 A列を横軸の目盛りで表示し、C・D・E列を折れ線グラフで表示し、B・F列はグラフには使用しません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ap_2
  • ベストアンサー率64% (70/109)
回答No.1

グラフ関連は一通り記録されるはず。ただ、グラフ生成はシート名やセル範囲が固定されちゃうので、手を加えないと使えないですね。  shname = ActiveSheet.Name 'シート名を記憶  rmax = Range("A2").End(xlDown).Row '最終行  Range("C1:E" & rmax).Select  Charts.Add  ActiveChart.ChartType = xlLineMarkers  ActiveChart.Location Where:=xlLocationAsObject, Name:=shname  ActiveChart.SeriesCollection(1).XValues = "='" & shname & "'!R2C1:R" & rmax & "C1" 説明は大事だけど、めんどくさいのでとりあえずコードだけ。何かあれば補足ください。 勉強は、まずステップ実行とローカルウィンドウの使い方を覚えたら、1操作ずつ記録して1行ずつ読み解くといいです。

meina04
質問者

お礼

コピペでそのまま使える内容だったので助かりました。 回答をみるとなるほど!っと思うのですが。。。 まだ、一人立ちは先のようですが諦めずに続けていきたいと思います。 ありがとうございました。

その他の回答 (1)

  • ap_2
  • ベストアンサー率64% (70/109)
回答No.2

ちょい補足。 見出し行や目盛り列は自動判別されるので、"A1"が空なら  1. "E1:A1"選択して[Shift+Ctr+↓]で範囲選択  2. グラフ生成して系列1(B)削除 って操作が一番シンプル。 [Ctrl+↓]で可変のデータ範囲を選択したり、操作の工夫により、記録だけでデキることも増えますよ。 グラフ生成は結局ちょっと書き換えることになるので、コード書いちゃいましたが。

関連するQ&A

専門家に質問してみよう