- ベストアンサー
VBAのシートコピーで時間が・・・
VBAにてシートコピーのことについて悩んでいます。 行き詰ってしまったためお助け願えないでしょうか? シートをコピーしていくコードを書いてあるものなのですがやたらとコピーに時間を要してしまいます。 私の施した処置としては当たり前かもしれませんが自動再計算の処理をしないと画面の更新を止めました。実績として全てのコピーが終わるのに1時間近くかかったものが10分くらいまで短縮できました・・・のですがやはり自分の欲としては5分以下に短縮をしたいのです。 他に良い方法はあるのでしょうか? シートの内容としてはかなり多くの数式が入った物を8枚程度コピーするものです。あまり時間が無いので大幅な改良は出来ません。 申し訳ありませんがよろしくお願いします。 時に下記のコードを追加したらすごい遅くなりました・・・ 代替案はどうしたらよいでしょうか? Private Sub CommandButton1_Click() With ActiveSheet .Protect Sheets("Piquet" & Right(.Name, 4)).Range("A1").Value = 1 Sheets("Piquet" & Right(.Name, 4)).Calculate Sheets("Piquet" & Right(.Name, 4)).Range("A1").Value = 9 Sheets("Piquet" & Right(.Name, 4)).Calculate Sheets("Piquet" & Right(.Name, 4)).Select End With End Sub
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
http://www.relief.jp/itnote/archives/001259.php Application.ScreenUpdating = False を入れてますか。 ーー >.Protect は保護だが何の為にここでしているのですか。
その他の回答 (1)
- fumufumu_2006
- ベストアンサー率66% (163/245)
ちがってたらすみません。 .Protect 保護して変更を禁止 .EnableCalculation = False '再計算禁止 を勘違いしてませんか? p.s. 全部の作業が終わったら、最後に .EnableCalculation = True を実行しないと、再計算しません。