- ベストアンサー
式を相対パスで他ブックへコピーするには
過去情報を検索できなかったので既出かもしれませんがお尋ねします。 エクセルでsheet1、sheet2があるbook1とsheet1のみのbook2があり、 book1のsheet2のA1に =Sheet1!A1 が入力されています。 このboo1のsheet2を「移動またはコピー...」でbook2へコピーします。 そうするとbook2のsheet2のA1セルは ='[book1.xls]Sheet1'!A1 となりますが、book1ではなく自身を参照するままにしてコピーする(つまり期待する のはbook2のsheet2のA1セルも =Sheet1!A1)にはどのようにするのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
しばしば寄せられるご質問ですが、基本的にそういうご希望の操作をさくっとできる方法はありません。(ので、探しても見つからないワケです) 出来る方法その1) シート1とシート2をセットにしてブック2に「シートコピー」すると、できます。 必要に応じてシート1に複写先のデータをコピーし再構築することで、数式は手を入れずに利用し続けることができます。 出来ることその2) ふつーにコピーしてオリジナルブックへのリンクを引きずっている状態で ○置換によって数式を書き換える ○リンクの編集によってリンク元を自ブック(=貼りつけた先)に付け替える 出来ることその3) マクロによって上述のような手順を自動化する 若しくは、シート2の挿入と必要な数式の記入を行わせる 出来ることその4) コピー元の数式を =INDIRECT("Sheet1!A1") と作成しておくことで、ただコピーするだけで実現できます。
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
Book2のシートで「ホーム」タブの「検索と選択」から「置換」をクリックします。 表示の画面の検索する文字列の窓には [book1.xls] と入力し、置換後の文字列の窓はそのまま空のままで「すべて置換」をクリックします。
お礼
ありがとうございます。 しかしながらbook2はネットワーク上の深い階層に散らばっていて100近く存在します、そのため、手動でのパスの変更は現実的ではありません。 まあ、VBで処理すれば良いのでしょうが、マクロをbook2に組み込むことは許されていません。何か他の方法はないでしょうか?
お礼
ありがとうございます。 第4の方法を取らせていただきました。