PR

【ExcelVBA】マクロ実行中にアラートメッセージを出さない・画面更新しない・イベント発動させない方法

ウィンドウ・アプリケーション

マクロ実行中にエクセルから表示されるアラート(警告・確認)メッセージや確認メッセージの表示が出ないように切り替える方法、マクロ実行中に画面をちらちら表示しないように切り替える方法、イベントマクロを発動させないように切り替える方法について説明しています。

スポンサーリンク

アラート(警告・確認)メッセージを表示させない

エクセルからのアラート(警告・確認)メッセージはたとえば↓のようなものがあります。

シートを削除しようとした際に出る確認メッセージ
「このシートは完全に削除されます。続けますか?」

エクセルVBA-シート削除時の確認メッセージ

ファイルを保存しようとした際に、すでに同名のファイルがある場合に出るメッセージ。
「この場所に○○という名前のファイルが既にあります。置き換えますか?」

エクセルVBA-ファイルを上書きしますか?の確認メッセージ

などなど。

手動で作業しているときは特に気にならないメッセージですが、マクロで処理を自動化したいときに途中でメッセージが出てしまうのは困ることがあります。

マクロで処理を自動化するときには、想定できるエラー処理は別で作成しておいて、エクセルから出るアラートは非表示に切り替えておくと便利です。

‘アラートメッセージをOFFにする
Application.DisplayAlerts = False

Sub sample1()

'アラートメッセージをOFFにする
Application.DisplayAlerts = False

'<ここに処理を書く>

'アラートメッセージをONにする
Application.DisplayAlerts = True

End Sub

デフォルトは「True」になっているので、アラートが出てほしくない処理の手前で「False」に切り替えます。

そのまま「False」で進んでしまうとあらゆるアラートが出なくなってしまうので、処理の後は「True」に戻しておくことが必要です。

スポンサーリンク

画面更新をしない

こちらも良く使われるのがエクセルの画面更新を止めたいときに使用する「ScreenUpdating」の切り替えです。

マクロを実行している間、シートやブックの選択が切り替わった時に画面がチラチラと切り替わってしまうのを静止することができます。

‘画面更新しない
Application.ScreenUpdating = False

Sub sample3()

'画面更新しない
Application.ScreenUpdating = False

'<ここに処理を書く>

'画面更新する
Application.ScreenUpdating = True

End Sub
スポンサーリンク

エクセルのイベントマクロを発動させない

エクセルのマクロにはシートが選択されたときに発動して実行されるマクロや、値が変更されたときに実行するマクロなどのイベントマクロを作成することが可能です。

手動で値を変更したときにはイベントマクロを発動させたいけど、別のマクロから値を変更したときにはイベントマクロを発動させたくない場合などがあります。

そんな時に使用するイベントを発動させないようにするためのコードです。

‘イベントマクロを発動させない
Application.EnableEvents = False

Sub sample2()

'イベントマクロを発動させない
Application.EnableEvents = False

'<ここに処理を書く>

'イベントマクロを発動させる
Application.EnableEvents = True

End Sub
スポンサーリンク

※コードのコピー利用について

・コードのコピーは自由におこなっていただけます。
・気を付けて作成はしていますがコードには誤りがある可能性があります。
・自身の環境で動作確認をしていますが、すべての方の環境で同様に動くことは保証できません。
・データの破損等の責任は負いかねますのでご自身の責任のもとお使いください。

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