エクセル

【ExcelVBA処理高速化】時間計測をして比較実験してみたよ

スポンサーリンク

 
【ExcelVBA処理高速化】時間計測をして比較実験してみたよ 私困 232x300
困っている人
エクセルVBAの処理速度を上げる方法を教えてほしい
上記のお悩みを解決します。

本記事の内容

  • たった2行追加して、エクセルVBAの処理速度を上げる方法をご紹介
それでは、本題に入ります。
 

画面更新OFF/ONのコード

【ExcelVBA処理高速化】時間計測をして比較実験してみたよ 結果 1592450956

 
マクロの最初と最後に下記のコードを入れることで画面更新をOFF/ONすることができます。
 
マクロの最初には、
Application.ScreenUpdating = False '画面更新OFF
マクロの最後には、
Application.ScreenUpdating = True '画面更新ON
 
この2行のコードを記述するだけです。
 
画面更新なしの場合
 
【ExcelVBA処理高速化】時間計測をして比較実験してみたよ 2 画面更新なし 1024x576
 
 
画面更新ありの場合
 
【ExcelVBA処理高速化】時間計測をして比較実験してみたよ 1 画面更新あり 1024x576

画面更新とは

マクロ実行時に画面がチカチカすることはありませんか?
 
マクロで実行している作業を、ただ画面表示しているだけなのですが、これが結構重たいです。
そのため、『画面チカチカをオフにしよう』というお話です。

画面更新あり・なしの差

今回の実験では、画面更新をオフにすることで約4倍も処理が早くなりました。

テスト内容

新シート追加→表作成の動作を10回繰り返す。
画面更新あり・なしで、それぞれ10回の処理時間の平均値を算出しました。
 

ポイント

画面更新ありの平均値は『0.455078』
画面更新なしの平均値は『0.113672』
 
画面更新なしは、画面更新ありと比べて、約4倍も処理速度が上がっていることが分かりました。

今回のテストに使用したコード

 

実験結果の表

回数画面更新あり画面更新なし
10.4218750.117188
20.4492190.109375
30.4492190.105469
40.4726560.109375
50.4257810.109375
60.4648440.125000
70.4882810.105469
80.4765630.121094
90.4609380.105469
100.4414060.128906
平均値0.4550780.113672

注意点

【ExcelVBA処理高速化】時間計測をして比較実験してみたよ 注意 1592450910

 
マクロの最初に、
Application.ScreenUpdating = False
マクロの最後に、
Application.ScreenUpdating = True
この2つのコード追記するだけですが、ちょっとしたミスでマクロを壊してしまう可能性もあります。
 
そのため、作業前には必ずエクセルファイルのバックアップを取ることをオススメします。(バックアップと言っても、ファイルコピーするだけですが)

まとめ

【ExcelVBA処理高速化】時間計測をして比較実験してみたよ 私普通
ばらもん。
いかがでしたか?
 
たった2行を追加するだけで、約4倍も処理速度が上がりました。

複雑なマクロ処理ほど、効果絶大です。(特にコピペ多用マクロ)

マクロ実行時の画面がチカチカすることもなくなるので、オススメです。以上です。
※本記事の内容で実行された結果について、筆者は一切の責任を負いませんので、ご了承ください。
必ず自己責任で実行してください。

スポンサーリンク

イチオシのワードプレステーマ

アフィンガー5

画像の説明文

ばらもん。
当ブログもアフィンガー5です

アフィリエイト×SEOに特化したテーマ

豊富な装飾が揃っているアフィンガー5

誰でも簡単にオシャレブログを実現可能!

アフィリエイトブログを作るならコレっきゃない!

-エクセル
-,

© 2021 ブログ汁