次の方法で共有


Application.DisplayAlertsがTrueのまま変わりません

質問

2018年8月3日金曜日 4:22

Excel2013にてマクロ起動中に警告メッセージを表示させないため、
以下のように記述しました。

Application.DisplayAlerts = False

上記にブレークポイントを設定し、Application.DisplayAlertsにカーソルを合わせて前後を確認するとTrueのままでFalseに変わらず、警告メッセージも表示されるままでした。

しかし、イミディエイトウィンドウでApplication.DisplayAlerts = False を実行するとTrueからFalseに変更でき、警告メッセージも非表示になりました。

処理の中でDisplayAlertsを変更させるにはどうすればいいのでしょうか。

ご回答よろしくお願いします。

すべての返信 (1)

2018年8月6日月曜日 7:54

ブレークポイント等で一時停止させないでください。
一時停止中は、DisplayAlerts や ScreenUpdating は True を返します。

Application.DisplayAlerts = False
For i = 1 To 10
    Debug.Print i, Application.DisplayAlerts
    If i = 5 Then Stop
Next
Application.DisplayAlerts = True

たとえば上記の場合、
 1            False
 2            False
 3            False
 4            False
 5            False
と出力されたところで一時停止しますが、デバッグ時点では DisplayAlerts は True であるかのように見えるかと思います。

しかし [F5] キーを押して処理を継続すると True ではなく、再び
 6            False
 7            False
 8            False
 9            False
 10           False
のように出力されるのではないでしょうか。

※強制終了時など、たまに DisplayAlerts や ScreenUpdating が False のままになってしまうこともあるようですが。