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