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

ブック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の内容が書き換わっているため、計算結果も新しい値に更新されました。
