- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シートをコピーする際のVBAコードについて)
シートをコピーする際のVBAコードについて
このQ&Aのポイント
- VBAでシートをコピーする際にファイル名が変わってもエラーが生じない方法はあるか
- sample.xlsというファイルの中にVBA処理にて、現在のシートをコピーする処理を行いたい
- ファイル名が変更されても、VBAコードが正常に機能する方法を教えてほしい
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
原本ファイルがいつまで必要なのかがいまいちはっきりしませんが、 あくまで自分自身(sampleYYYYMM.xls)の原本シートをコピーしたいのであれば3行まとめて ThisWorkbook.Sheets("sheet1").Copy after:=Sheets(Sheets.Count) でいいと思います。 コピーするだけならSelectは不要です。
その他の回答 (1)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
回答No.1
現在のシートをコピーするという部分だけで考えれば ActiveSheet.Copy after:=Sheets(Sheets.Count) で済むと思いますが、sample.xlsにフォーカスを 当てて処理を行いたいのでしょうか? 原本(VBAあり)から、別ブック(VBAあり)が作成され、 更に別ブック(VBAあり)からVBAを実行することがある、 というイメージでしょうか? もしそうなら、ファイルを起動した直後にActiveWorkbookオブジェクトを 保持し続け、必要なときにActiveにすればいいと思います。
質問者
お礼
回答ありがとうございました。 その後調べてみて、Thisworkbook.Activateにて、ファイル名を指定せずに解決できることが分かりました。
お礼
回答ありがとうございました。 その後調べてみて、Thisworkbook.Activateにて、ファイル名を指定せずに解決できることが分かりました。