VBA – 画面更新を無効にする

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 8月 1, 2022

VBAマクロが画面を操作している様子はとてもクールですが、ScreenUpdating(画面の更新)を無効にすると、マクロの実行速度が向上します。

ScreenUpdatingを無効にする

1.ScreenUpdatingを無効にするには、コードの最初に次の行を記述します。

Application.ScreenUpdating = False

ScreenUpdatingを有効にする

2.ScreenUpdatingを再び有効にするには、コードの最後に次の行を記述します。

Application.ScreenUpdating = True

VBA ScreenUpdatingの例

プロシージャは、次のようになります。

Sub ScreenUpdating_Example()
    Application.ScreenUpdating = False

    '何らかの処理を実施
    Range("a1").Copy Range("b1")
    Range("a2").Copy Range("b2")
    Range("a3").Copy Range("b3")

    Application.ScreenUpdating = True
End Sub

vba screen updating

ScreenUpdatingのリフレッシュ

ScreenUpdating を無効にすると、VBA コードの実行速度が大幅に向上するだけでなく、あなたの作成したマクロがより専門的に見えるということでもあります。エンドユーザーは通常、プロシージャの舞台裏を見たいわけではありません。(特にプロシージャの実行速度が遅い場合。)むしろ、エンドユーザーに舞台裏の機能(例:ワークシートを非表示にする)を見せたくない場合もあります。私は、ほぼすべてのプロシージャで ScreenUpdating を無効化(および再有効化)することを推奨します。

しかし、画面を更新したい場合もあります。画面を更新するには、一時的にScreenUpdatingをオンに戻す必要があります(画面の「更新」コマンドは存在しません)。

    Application.ScreenUpdating = True
    '何らかの処理を実施
    Application.ScreenUpdating = False

VBAの設定 – コードの高速化

コードの速度を向上させるために、他にもいくつかの設定を行うことができます。

自動計算を無効にすると、スピードに大きな差が出ます。

Application.Calculation = xlManual

また、ステータスバーを無効にすることでも若干の差が出ます。

Application.DisplayStatusBar = False

ワークブックにイベントが含まれている場合は、通常、プロシージャの最初にイベントを無効にする必要があります。

Application.EnableEvents = False

最後に、Excelが改ページを再計算しようとすると、VBAコードが遅くなることがあります。(注:すべてのプロシージャが影響を受けるわけではありません。) 改ページを表示しないようにするには、次のコード行を使用します。

ActiveSheet.DisplayPageBreaks = False

VBAのコーディングが簡単に

VBAのコードをオンラインで検索するのはもうやめましょう。AutoMacro – A VBA Code Builderを使えば、初心者が最小限のコーディング知識でゼロから手順をコーディングでき、ベテランのユーザーでも時間を節約するのに役立つ多くの機能を備えています!詳細については、こちらをご覧ください。

VBA Turn Off On ScreenUpdating

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples