No.2ベストアンサー
- 回答日時:
実際にフォーム1とフォーム2を作成し、フォーム1に二つのコマンドボタンを用意して、以下のコードを貼り付けて見てください。
Private Sub Command1_Click()
Form2.Show vbModal, Me
MsgBox "vbModal"
End Sub
Private Sub Command2_Click()
Form2.Show vbModeless, Me
MsgBox "vbModeless"
End Sub
Command1でもCommand2でもフォーム2が開きます。しかしMsgBoxが表示するタイミングが変わってるはずです。
Command1の場合はフォーム2が閉じたあと
Command2の場合はフォーム2が表示されたあと
にメッセージボックスが表示されます。
つまりCommand1はShowのあとのロジックを、フォーム2が閉じるまで、未処理のままとなるわけです。
画面上はフォーム2が前面、フォーム1が背面になるどちらも似たような表示に見えますが、
Command1の場合はフォーム1はフォームをクリックしても、フォーカスを持たない
Command2の場合はフォーム1はフォームをクリックすると、フォーカスを持ちえる
という点も違います。
簡単にまとめると、
vbModalの場合はフォーム2だけに作業処理を固定させたい時に使用します。vbModelessの場合はフォーム2はポップアップ的な使用方法の時に使います。
No.4
- 回答日時:
モーダルフォームは、オプションやバージョン情報などをだす時に使います。
一度見たらあまり開かないフォームに使います。例.Excelのバージョン情報、IEのオプション等
モードレスフォームは、1つのアプリケーションで複数フォームを見たいとき使います。
例.Wordで文書新規作成
No.1
- 回答日時:
モーダルは、ほかのウィンドウがアクティブにならない。
モードレスは、アクティブになる。
画像を保存する時などに出てくるダイアログボックス(出ている時に元画像をアクティブにできない)などがモーダル。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
UserForm1.Showでエラーになります。
工学
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
Excel VBAで、ユーザーフォームをモードレス表示している間、処理を止めるには?
Visual Basic(VBA)
-
5
Excel VBA:フォーム←→セルのアクティブ切り替え
Excel(エクセル)
-
6
Vba Userformを前面に出すについて
Access(アクセス)
-
7
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
8
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
9
エクセルVBAのフォームを最前面にする方法を教えてください。
Visual Basic(VBA)
-
10
メッセージボックスの非モーダル化について
Visual Basic(VBA)
-
11
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
12
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
13
DoEventsがやはり分からない
Visual Basic(VBA)
-
14
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
15
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
16
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
17
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
18
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
19
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
20
ExcelのVBAでフォームが表示されない
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
VBAで画像を表示する方法
-
ExcelVBAのユーザーフォームの...
-
C#で3つのプログラムができま...
-
フォームのテキストボックスな...
-
MSGBOXのフォント大きさ変更
-
ユーザーフォームのコピー?
-
Form_Load と Form_Activate の...
-
Excelにて、ユーザーフォームで...
-
Excelのユーザーフォームのテキ...
-
Excelvbaでフォーム間での変数...
-
エクセルのフォームをマクロで...
-
モーダルフォームとモードレス...
-
VBA(エクセル)のユーザー...
-
VB.NETでフォームロード中のエ...
-
テキストボックス入力データの...
-
フォームウィンドウを最前面に...
-
C#でボタンクリックをキャンセル
-
(Excel+VBA)ユーザーフォームの...
-
VBA コンボボックスとテキスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
モーダルフォームとモードレス...
-
ExcelVBAのユーザーフォームの...
-
Form_Load と Form_Activate の...
-
ユーザーフォームのテキストボ...
-
Excelにて、ユーザーフォームで...
-
フォームウィンドウを最前面に...
-
【VBAユーザーフォームで閉じる...
-
エクセルVBAのフォームを最...
-
クリックイベントなのに、2回ク...
-
MSGBOXのフォント大きさ変更
-
VBAでユーザーフォームを再表示...
-
Hideについて(.NET)
-
エクセルVBA フォーム上でOnkey...
-
Access VBA コントロールの参照...
-
コントロールの存在確認
-
フォームのテキストボックスな...
-
ACCESSのフォーム、開くんです...
-
複数モニタ使用時のフォームの...
-
VBA コンボボックスとテキスト...
おすすめ情報