dポイントプレゼントキャンペーン実施中!

「sheet1」と「Data1」というシートがあります。

Sheet1にはData1とリンクさせた数値、
及びグラフが大量にあります。

そこに「sheet2」と「Data2」というシートを
「sheet1」と「Data1」をコピーして作成したとします。

Data2には新規に数値を入力し、
Sheet2にリンクさせたいのですが、
Sheet2はSheet1をコピーしたものなので修正が必要ですよね。

Sheet2を置換を使い、「Data1→Data2」に修正します。
が...グラフのリンクは置換では変更できません。

グラフが大量にある場合、
グラフを一つ一つ「元データ」をいじって直すしかないのでしょうか?

宜しくお願い致します。

A 回答 (2件)

VBAでよろしければ以下のようになります。




Sub sample()

Dim CO As ChartObject
Dim Ser As Series
Dim Oldname As String
Dim Newname As String

Oldname = "Data1" '元のシート名
Newname = "Data2" '置換後のシート名

For Each CO In ActiveSheet.ChartObjects 'アクティブシート内のグラフ全て
For Each Ser In CO.Chart.SeriesCollection 'グラフ内の系列全て
Ser.Formula = Replace(Ser.Formula, Oldname, Newname) '置換する
Next Ser
Next CO

End Sub


Alt+F11を押して出てきた画面で、挿入→標準モジュールを選択、出てきたウィンドウに上記のコードを貼り付けて実行してください。実行時は、Sheet2(置換したいグラフのあるシート)をアクティブにしておいてください。

なお、シート名の先頭に数字が使われているなどの場合、シート名をシングルクォーテーションで囲む必要がありますのでご注意ください。
    • good
    • 0
この回答へのお礼

ありがとうございました。
ちょっと勉強が必要なのでがんばってやってみます。

お礼日時:2010/03/29 18:55

ファイル自体の複製を作るのはNGですか?

    • good
    • 0
この回答へのお礼

ありがとうございます。
ファイルごとのコピーは無し、
とした場合なにか方法はあるでしょうか?
先を見越してどうしてもどうしてもひとつのファイルにしたいもので。
よろしくお願い致します。

お礼日時:2008/07/26 22:38

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