【Excelマクロ】処理速度を高速化する

Excel VBAマクロを作った際、とにかく滅茶苦茶遅かったので、高速化を色々試してみた。

ド定番!画面更新を切る

基本的に、これやると超早くなる。
方法は以下の通り。

Application.ScreenUpdating = False
:
[処理]
:
Application.ScreenUpdating = True

Application.ScreenUpdatingFalseにして、画面更新を停止し、処理の完了後、Trueにして画面更新を再開する。

Copyを使わない

セルの初期ごとコピーしたい場合とかに、Copyを使う方法がある。

ただし、こいつが死ぬほど遅い。

Copyを使わずに済むのなら削る方が良い。

DoEventsを使わない

DoEventsも処理が重くなる。

ループで毎回DoEventsやってる場合、削ると大分早くなる。

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のPG・SEを経て、独立。 現在はとある企業のCTOと、変な名前の会社の社長をしてる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください