- 締切済み
[VBA]MsgBoxが消えません。
ExcelでFormダイアログで、メインメニューを 作成しています。 今度、入力項目のエラーチェックを行うこと になったのですが、エラーを検出した場合、 メインメニューのサイズより大きなMsgBoxを 表示しています。OK/CancelでMsgBoxが消え、 メインメニューが再表示されるのですが、 メインメニューの領域外が、MsgBoxの表示 が残ったままになってしまいます。 (制御そのものはメインメニューに移っています。) このような場合でも、MsgBoxをきれいに消す にはどのようにしたらよろしいでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- taseki
- ベストアンサー率66% (155/233)
回答No.1
ご質問を読み違えていたらすみません。 ようするにMsgBoxの下にあったオブジェクトなどが再描画されない、ということでしょうか。 Repaintメソッドを使ってはどうでしょうか。 フォームのAutoRedrawプロパティを設定する手もありますが、メモリやパフォーマンスに影響することがあります。
お礼
MsgBoxを閉じた後、 Application.ScreenUpdating = True を実行することで、表示上のごみを消すことが できました。 ありがとうございました。
補足
判りづらくてすみません。 メインメニューが、 (0.100),(400,100),(0,300),(400,300) の領域に表示し、その上に、MsgBoxを表示 します。 位置指定していませんが、 (100,50),(300,50),(100,350),(300,350) が表示領域だとした場合、 MsgBoxを閉じたとき、 (0.100),(400,100),(0,300),(400,300) は、メインメニューで再描画されますが、 (100,50),(300,50),(100,100),(300,100)および (100,300),(300,300),(100,350),(300,350) のエリアがクリアされずに残ってしまうのです。 よろしくお願いします。