スタイル

イベントの抑止に併せて、処理速度向上処理を行う

イベントの抑止が必要なことは、別の記事で説明しました。

ここでは、その際にマクロの処理速度向上の処理を合わせて行うことを説明します。

具体的には、次のようなコードを利用しています。

Sub DsblEvents()
With Application
    .EnableEvents = False 'イベントを抑止
    .ScreenUpdating = False '画面描画を停止
    .Cursor = xlWait 'マウスポインタをウエイトカーソル
    .Calculation = xlCalculationManual '計算を手動に
End With
End Sub

Sub EnblEvents()
With Application
    .Calculation = xlCalculationAutomatic '計算を自動に
    .Cursor = xlNormal 'マウスポインタを標準カーソル
    .ScreenUpdating = True '画面描画を開始
    .EnableEvents = True 'イベントを開始
End With
End Sub

この設定については、こちらの記事を参考にしています。

これらの設定の中で、特別なのは「EnableEvents」です。
他の設定は、マクロの速度には影響を及ぼしますが、その動作自体に影響は及ぼしません。
しかし「EnableEvents」は、これがないとマクロが誤作動する可能性もあるのです。

また、マウスポインタの設定は、マクロが正常に動いている限り、その必要性はほとんどありません。
ただし、これを入れておくと、マクロが停止してしまった場合に、EnableEventsの状態がマウスポインタで明らかになるので、とても便利です。


コメント

タイトルとURLをコピーしました