• ベストアンサー

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

http://www.relief.jp/itnote/archives/001259.php Application.ScreenUpdating = False を入れてますか。 ーー >.Protect は保護だが何の為にここでしているのですか。

その他の回答 (1)

回答No.1

ちがってたらすみません。 .Protect 保護して変更を禁止 .EnableCalculation = False '再計算禁止 を勘違いしてませんか? p.s. 全部の作業が終わったら、最後に .EnableCalculation = True を実行しないと、再計算しません。

関連するQ&A