ふぢのVB小技集

モーダルフォームの注意点

(質問)
モーダルフォームを使用する際に注意することがあると聞いたのですが。



(回答)
モーダルフォームを表示した状態で、モードレスフォームを表示することはできません。



(解説)
まず、モーダルフォームとモードレスフォームの違いを確認しましょう。
表示形態 VB定数 説明
モーダル vbModal 画面を消去するまで、他画面の操作は出来ない。
モードレス vbModeless 画面を消去したままで、他画面の操作を行うことができる。

上の表のように、モーダル表示を行うと、画面を消去するまで他画面の操作を行うことが出来ません。
ユーザの入力が無いと、次の処理が行えない場合などに使用します。

しかし、モーダル表示を行っていると以下のようなエラーが表示されることがあります。




モーダルフォームが表示されているときにモードレスフォームを表示しようとした場合のみ上記のエラーが表示されます。
その他の場合は、エラーにはなりません。下の一覧表を参考にしてください。
先に表示
モーダル モードレス
後から表示 モーダル
モードレス ×


上記エラーは、On Error文でエラーをトラップすることで表示されなくなりますが、表示されるはずの画面が表示されないことになるので根本的な解決にはなりません。
あと、全ての画面をモーダルフォームにしてしまう方法もありますが、現実的ではないでしょう。

やはり、不必要にモーダルフォームを使わないようにし、使用する場合には同時にモードレスフォームが表示されないように気を付けることが大切です。



戻る