エクセルのシートを差し替える

 ブックAには、BとCというシートが入っています。

 シートBには、100と200という値が入っています。

 シートCで、シートBの2つの値を足し合わせています。

 ブックDには、Bというシートが入っています。

 ブックDのシートBには、350と150という値が入っています(ブックAのシートBと同じ配置)。

~やりたい事~
 ブックAのシートBを、ブックDのシートBで差し替えたい。
※「ブックDのシートB内容をコピーして、ブックAのシートBに貼り付ける」は、考えません。

 ブックDのシートBをブックAにコピーすると、

 ブックDのシートBは、ブックA上でB(2)という名前になります。
 元々、ブックAにはBというシートがありましたから、これは当然な動作でしょう。

 仕切り直します。
 ブックAのシートBを、B_oldという名前に変更します。

 改めて、ブックDのシートBをブックAにコピーすると、

 確かに、ブックAにはBというシートが入りましたが、

 シートCの中では、B_oldの値を引用しています。
(ブックAのシートBをB_oldという名前に変更した時点で、シートC中の数式が自動的に書き換わるため)

 「数式中のB_oldをBに置換すれば良い」という考えがありますが、

 とりあえず今は考えません。

 仕切り直します。
 「ブックAのシートBを削除して、ブックDのシートBをブックAにコピー」という方法を考えます。
 ブックAのシートBを削除した時点で、ブックAのシートCの数式はエラー状態になります。

 ブックDのシートBをブックAにコピーしますが、

 ブックAのシートCの数式はエラー状態のままです。

 仕切り直します。
 ブックDのシートBをブックAにコピーすると、ブックDのシートBは、ブックA上でB(2)という名前になります。
 このまま、ブックAを「ブックE」というXML形式で保存します。

 この時、注意点の表示が出ますが、強行します。

 ブックEのXMLファイルをメモ帳で開くと、シート名に関係している箇所が見つかります。

 その部分を、書き換えて上書き保存します。
 この時、B(2)をBに書き換えただけではシート名が重複してしまいますから、元々のBを確実かつ目立つものに書き換えなければなりません。

 エクセルでブックEを開くと、シート名が変更されているのが確認できます。

 シートCの数式は以前と同じですが、シートBの内容が書き換わっているため、計算結果も新しい値に更新されました。