• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:他のブックからシートをコピーする)

他のブックからシートをコピーする方法

このQ&Aのポイント
  • ExcelVBA勉強中の者です。他のブックのsheet1をコピーし、使用中のブックのsheet1にペーストする方法を教えてください。
  • 他のブックからシートをコピーし、使用中のブックにペーストする方法が分かりません。book2.Sheets("Sheet1").Copy after:=book1.Worksheets("sheet1")としているのですが、新しいシートが作成されてしまいます。
  • Excelのバージョンは2002です。ペースト先を変数book1のsheet1に指定しているのに、なぜ新しいシートが作成されるのでしょうか?解決方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

そうですね。 >book2.Sheets("Sheet1").Copy after:=book1.Worksheets("sheet1") これではbook2の「Sheet1」シートを,言い換えると「ワークシートオブジェクト」をコピーしています。 セル(rangeオブジェクト)をコピーしていません。 作成例: book2.worksheets("Sheet1").cells.copy destination:=book1.worksheets("Sheet1").range("A1")

souko3
質問者

お礼

keithin様いつもお早い対応を頂きまして有難う御座います。 上記のコードに置き換えて見たところ理想通りの動作を確認できました。 有難う御座います。 「シートをコピーする」という目的から調べていったのですが、 厳密には「シートの中のセルを全てコピーする」という動作だった訳ですね。 この違いに気付けませんでした。 それを知った上で考えてみるとシートが追加されてしまった事も理解できます。 またお手数をお掛けする事も有るかと思いますが、今後ともよろしくお願いします。