• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シートをコピーする際のVBAコードについて)

シートをコピーする際のVBAコードについて

このQ&Aのポイント
  • VBAでシートをコピーする際にファイル名が変わってもエラーが生じない方法はあるか
  • sample.xlsというファイルの中にVBA処理にて、現在のシートをコピーする処理を行いたい
  • ファイル名が変更されても、VBAコードが正常に機能する方法を教えてほしい

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

  • ベストアンサー
  • luka3
  • ベストアンサー率72% (424/583)
回答No.2

原本ファイルがいつまで必要なのかがいまいちはっきりしませんが、 あくまで自分自身(sampleYYYYMM.xls)の原本シートをコピーしたいのであれば3行まとめて ThisWorkbook.Sheets("sheet1").Copy after:=Sheets(Sheets.Count) でいいと思います。 コピーするだけならSelectは不要です。

makun100
質問者

お礼

回答ありがとうございました。 その後調べてみて、Thisworkbook.Activateにて、ファイル名を指定せずに解決できることが分かりました。

その他の回答 (1)

回答No.1

現在のシートをコピーするという部分だけで考えれば ActiveSheet.Copy after:=Sheets(Sheets.Count) で済むと思いますが、sample.xlsにフォーカスを 当てて処理を行いたいのでしょうか? 原本(VBAあり)から、別ブック(VBAあり)が作成され、 更に別ブック(VBAあり)からVBAを実行することがある、 というイメージでしょうか? もしそうなら、ファイルを起動した直後にActiveWorkbookオブジェクトを 保持し続け、必要なときにActiveにすればいいと思います。

makun100
質問者

お礼

回答ありがとうございました。 その後調べてみて、Thisworkbook.Activateにて、ファイル名を指定せずに解決できることが分かりました。

関連するQ&A