アプリ版:「スタンプのみでお礼する」機能のリリースについて

マクロ初心者です。

あるグラフを最初テンプレートで作っておいて、他のデータでも簡単に同じグラフを作れるようにしたいです。
マクロの記録で「相対参照」があったので、これでできると思ったのですが、グラフのセルは絶対参照になるようです。下記のようになってりまいます。

Sub Macro6()
'
' Macro6 Macro
'

'
ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveChart.PlotArea.Select
ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveCell.Select
ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveChart.PlotArea.Select
ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveChart.SeriesCollection(1).XValues = "='Sheet1'!J3:J11"
ActiveChart.SeriesCollection(1).Values = "='Sheet1'!M3:M11"
ActiveChart.SeriesCollection(2).XValues = "='Sheet1'!J3:J11"
ActiveChart.SeriesCollection(2).Values = "='Sheet1'!P3:P11"
ActiveCell.Select
End Sub

具体的にやりたい動作は、
1.相対的な場所を決定するセルを選択(表の左上のセルなど)
2.
ActiveChart.SeriesCollection(1).XValues = "='1.のセルから右に2列進んだセル:1.のセルから右に2列下に8列進んだセル"
ActiveChart.SeriesCollection(1).Values = "='1.のセルから右に4列進んだセル:1.のセルから右に4列下に8列進んだセル"
ActiveChart.SeriesCollection(2).XValues = "='1.のセルから右に2列進んだセル:1.のセルから右に2列下に8列進んだセル"
ActiveChart.SeriesCollection(1).Values = "='1.のセルから右に6列進んだセル:1.のセルから右に6列下に8列進んだセル"

というふうにしたいです。

ご指導お願いします。

A 回答 (1件)

グラフには相対参照のベースとなるセル位置が存在しないので、相対参照記法はもちろん使えません。



が、参照範囲を相対的に求める方法はあります。キーワードはRangeオブジェクトとOffsetプロパティ。

Series.XValueおよびValueはRangeオブジェクトの範囲をそのまま受けられるので、グラフの範囲をRangeオブジェクトで求めてそのまま放り込んでやればOKです。
    • good
    • 0

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