- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【VBA】ファイルを開く→シートをコピー→保存)
【VBA】ファイルを開く→シートをコピー→保存
このQ&Aのポイント
- VBAを使って、複数ファイルを一気に編集する方法について教えてください。
- 特定のフォルダ内にある複数のエクセルブックを開き、1ページ目のシートを複製して保存するVBAのコードを実行したいです。
- 上記のVBAコードを書いて実行してみたのですが、うまく動作しません。どこが間違っているか教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>まったく動かない とは? エラーメッセージか何か出ますか? とりあえず何点かアドバイスするとしたら。 1)エクセルファイルを指定する。 Myfile = Dir(Filepath & "\*.xls") としてxlsファイルに限定しないと別の種類のファイルがあると Workbooks.Openメソッドでエラーになります。 2)自ブックは除外する。 Do While Myfile <> "" If Myfile <> ThisWorkbook.Name Then (ここで目的の処理) End If Myfile = Dir() Loop ThisWorkbookも同一フォルダ内にあるわけですから ThisWorkbookを開こうとするとエラーになります。 除外しなければいけません。 3)ScreenUpdatingプロパティなどを制御する。 多数のファイルのOpenCloseを繰り返す処理ですから、 画面更新は止めておいたほうが良いです。 他にも、イベント制御をしておいたほうが良い場合もありますし、 ご自身の状況に応じて対応してみてください。
お礼
>エラーメッセージか何か出ますか? 何もメッセージ等出ないのですが、処理がされないという状態でした。 >2)自ブックは除外する。 こちらを試してみたところ、無事動きました! 的確なアドバイスありがとうございます。 まだまだVBA初心者なので、これからも勉強したいと思います。 ありがとうございました!