【VBA高速化】VBA高速化テクニック①【事務のおばちゃんでも簡単】
今回は、Excel VBAで記述したプログラムの実行速度が遅い場合にすぐに対策できる高速化テクニックを紹介します。
コピペで適用できるテクニックなので、是非導入してください。
ソースコード
早速ですが、ソースコードを以下に記載します。
今回は、ソースコード内にコメントで説明を記載していますので、そちらを見て理解に役立てて頂けたらと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
' アプリケーションの実行速度向上を目的として以下のプロパティ設定を実施する ' - 画面描画 ' - イベント発生 ' - 自動再計算 ' - ファイルを開く際のセキュリティ モード ' - アプリケーションが発する警告やメッセージの表示有無 ' ※自分が記述したプログラム内のMsgBoxは表示できる Public Sub EnableApplicationOptions(ByRef enabled As Boolean) With Application ' 画面描画有無を設定 .ScreenUpdating = enabled ' イベント発生有無を設定 .EnableEvents = enabled ' 自動再計算有無を設定 .Calculation = IIf(enabled, xlCalculationAutomatic, xlCalculationManual) ' セキュリティモードを設定 .AutomationSecurity = IIf(enabled, msoAutomationSecurityByUI, msoAutomationSecurityForceDisable) ' 警告やメッセージの表示有無を設定 .DisplayAlerts = enabled End With End Sub |
上記プログラムを使用する側は下記のようなプログラムとなります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
' メイン処理実施 Public Sub Main() ' 実行速度向上のために画面描画などをオフにする Call EnableApplicationOptions(False) ' ================================================== ' メインの処理を実行 ' ================================================== ' 画面描画などをオンにする Call EnableApplicationOptions(True) End Sub |
まとめ
今回は、Excel VBAの実行速度改善のためのTipsを共有しました。
次回は、もう1つTipsを共有します。