- 締切済み
Excelでブックをまたいでシートをコピーした時に、元のブックを参照させない方法
Excelでブックをまたいでシートをコピーした時に、 元のブックを参照しないようにしたいです。 BOOK_AというブックのシートにBOOK_Aのブック内のセルを参照する式が ある場合、そのシートをBOOK_Bというブックにコピーすると、 式の中の参照先のセルを示す部分に自動的に[BOOK_A]が追加されて、 BOOK_Aを参照してしまいます。 ここではBOOK_B内のシートを参照してほしいので、そのままの式で コピーしたいのですが、可能でしょうか? よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- xls88
- ベストアンサー率56% (669/1189)
グラフのシートとデータのシートを同時にコピーすれば良いのですが グラフのシートのみコピーしたいのですか? その場合、SERIES式のブック名以外は同じで良いのですか? グラフのシートをコピー後に Series式の、Book名を書き換える、マクロを組んでみました。 グラフを選択しておいてマクロを実行してください。 Book名は実際の物に書き換えてください。 Sub test1() Dim srs As Series Dim bkname1 As String Dim bkname2 As String bkname1 = "BOOK_A.xls" bkname2 = "BOOK_B.xls" For Each srs In ActiveChart.SeriesCollection srs.Formula = Replace(srs.Formula, bkname1, bkname2) Next End Sub
- ruushii
- ベストアンサー率31% (25/80)
グラフのあるシートと参照先シートを同時に移動(コピーではNG)しなければ、元のブックを参照してしまうようですね。 ブックごとコピーして参照先シートを修正した方が早いのでは?
お礼
確かにそうなのですが、結構数もあり、 今後の事も考えると、できる方法があるならと思い質問させていただきました。 回答ありがとうございました。
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
コピー後に「置換」で 「検索する文字列」に「'[ブック名]シート名'!」を指定 「置換後の文字列」を空文字(何も無し)に指定 してから、全部の式を置換してしまいましょう。 こうすれば ='[BOOK_A]SHEET_1'!$D$12+'[BOOK_A]SHEET_1'!$D$13 と言う式は =$D$12+$D$13 になります。 もし、絶対指定の「$」が邪魔なら、やはり「置換」を使って 「検索する文字列」に「$」を指定 「置換後の文字列」を空文字(何も無し)に指定 して、全部の式を置換してしまいましょう。 この2度の置換で、最終的に ='[BOOK_A]SHEET_1'!$D$12+'[BOOK_A]SHEET_1'!$D$13 と言う式は =D12+D13 になります。
お礼
回答ありがとうございます。 やってみたのですが、どこを選択した状態で置換をしたらいいのか わからず、うまくいきません。 セル全体、グラフ全体、グラフの線 等で試してみましたが、だめでした。 どこを選択したらよいのでしょうか?
- DIooggooID
- ベストアンサー率27% (1730/6405)
シートのコピーでは、対応できません。 あたらしくシートを追加して、そこにセル全体のコピーを貼り付ける方法になります。
お礼
回答ありがとうございます。 説明が不足しておりましたが、コピーしたいのはシート内のグラフです。SERIES関数を使って、他のシートのセルを参照しているのですが、この場合はだめって事でしょうか? コピー後に一つ一つ訂正(式内の[BOOK_A]を削除)するしかないでしょうか。。
お礼
回答ありがとうございます。 うまくいきました。 あまりマクロは使いたくないので、もっと簡単にできればと 思っていたのですが、意外と他の方法はないものですね。