ブック間のシートコピーで数式にブック名が挿入される場合の解決方法|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)
このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です