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

よろしくお願いいたします。Excel2003です。(操作は2007ですが、保存は2003ですので、それでお願い致します)

1つのブックに50程度のグラフが作成された雛形があります。
このグラフは、下記のようなデータ系列で、Bの部分がC・D・E・・・と変わっているだけで、データ数等は同じ数です。

=SERIES(,Sheet1!$A$1:$A$3000,Sheet1!$B$1:$B$3000,1)

そのブックにデータを貼り付けてグラフを完成させるのですが、何度も使用する上に毎回データ数が変わります。
現在は、手入力で毎回変換しているのですが、かなりの時間がかかります。
上記の式のうち、$A$3000と$B$3000の3000の部分を全てのグラフ同じ数値に簡単に変換する方法は無いでしょうか?

補足が必要であれば要求お願いいたします。
よろしくお願いいたします。

A 回答 (1件)

>1つのブックに50程度のグラフが作成された雛形があります。


そのグラフはグラフシートでしょうか、シート上のグラフオブジェクトでしょうか?

グラフオブジェクトの場合、

Sub try()
  Const FND As String = "R3000C" 'R + 置換前の行数 +C
  Const REP As String = "R2500C" 'R + 置換後の行数 +C
  Dim ws  As Worksheet
  Dim ch  As ChartObject
  Dim sr  As Series

  For Each ws In ActiveWorkbook.Worksheets
    For Each ch In ws.ChartObjects
      For Each sr In ch.Chart.SeriesCollection
        sr.FormulaR1C1 = Replace(sr.FormulaR1C1, FND, REP)
      Next
    Next
  Next
End Sub

...こんな感じのVBAで処理できるかと思います。

>(操作は2007ですが、保存は2003ですので、それでお願い致します)
との事なので、2007で動作しないとダメですよね?
それはまだ確認してません。

他の案として、

[可変範囲のグラフ]
http://www2.odn.ne.jp/excel/waza/graph.html#SEC13

▲こちらを参考にして、範囲が変動しても対応できるグラフを作成しておいてはいかがでしょう。
[名前の定義]を使います。
最初、50個の[名前定義]とグラフ修正するのはたいへんかもしれませんが、一度作成してしまえば
修正が必要なくなりますので、おすすめです。
    • good
    • 0
この回答へのお礼

end-uさん、早速の回答ありがとうございます。

今更50個のグラフを作りなおすことは困難ですし、既に今まで作ったグラフと書式が変わるとまずいので、マクロの方を採用させて頂きました。2007でも問題なく作動しました。

[可変範囲のグラフ]
こちらのほうも今後のためにブックマークしました。

助かりました、ありがとうございます。

お礼日時:2008/07/11 08:31

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