ブック間のシートコピーで数式にブック名が挿入される場合の解決方法|VBA
Book1からBook2にシートをコピーする際、コピー元のシートに別のシートを参照している箇所があると下記のようにコピー先で元のブック名が挿入されてしまいます。
- コピー元(Book1)
=SheetB!A1
- コピー先(Book2)
='パス\[Book1.xlsx]SheetB'!A1
この場合の解決方法です。
参照元のシートを一緒にコピーする
変更前のソース
Workbooks.Add
book1.Sheets("SheetA").Copy before:=ActiveWorkbook.Sheets(1)
book1.Sheets("SheetB").Copy before:=ActiveWorkbook.Sheets(1)
変更後のソース
Workbooks.Add
book1.Sheets(Array("SheetA", "SheetB")).Copy before:=ActiveWorkbook.Sheets(1)
なお、下記のように参照元のシートを先にコピーする方法も試してみましたが、それでは駄目でした。
Workbooks.Add
' 元の book を参照してしまうので NG.
book1.Sheets("SheetB").Copy before:=ActiveWorkbook.Sheets(1)
book1.Sheets("SheetA").Copy before:=ActiveWorkbook.Sheets(1)