ユーザーフォームの表示

VBAのコードからユーザーフォームを表示するにはユーザーフォームオブジェクトのメンバである Show メソッドを使用します。

スポンサーリンク

Showメソッドの使用方法

構文
UserFrom.Show [Modal]
引数名 省略 説明
Modal ユーザーフォームの表示モードを指定します。
引数Modalに指定可能な定数
定数 説明
vbModal 1 ユーザーフォームはモーダルです。 モーダルフォームを閉じるまで、アプリケーション内の他の部分は使用できません。
(既定値)
vbModeless 0 ユーザーフォームはモードレスです。 フォームを表示した状態でアプリケーション内の他の部分を使用することができます。

Showメソッドの使用例

モーダルフォームの表示

前ページ(ユーザーフォームの作成 )で作成したフォームをモーダルで表示する例です。Show メソッドの引数に”vbModal”、または、”1″を指定しても同じです。

Sub test_uf013_01()
    UserForm1.Show
End Sub
モーダルフォーム
モーダルフォーム

モーダルフォームはフォームを閉じるまでエクセルの操作(セルの編集など)ができなくなります。このため、ユーザーはフォームの操作に集中するようになります。主に、処理の途中でユーザーからの入力を受け付けたり、処理の判断を仰いだりする場合に使用されます。

モードレスフォームの表示

前ページ(ユーザーフォームの作成)で作成したフォームをモードレスで表示する例です。Show メソッドの引数に”vbModeless”、または、”0″を指定します。

Sub test_uf013_02()
    UserForm1.Show vbModeless
End Sub
モードレスフォーム
モードレスフォーム

モードレスフォームはフォームを表示した状態で、エクセルの操作が可能です。このモードは主に、エクセル操作のサポートであったり、何かしらの情報を表示しておくような補助的なフォームの場合に使用します。

モーダル/モードレスの処理の違い

モーダルフォームの場合、そのフォームを閉じるまで処理が中断されるのに対し、モードレスフォームでは処理が中断されないことに注意してください。
Show メソッドの後にメッセージボックスを表示させてその違いを確認してみるとよいでしょう。

Sub test_uf013_03()
    UserForm1.Show
    MsgBox "test"   'フォームを閉じるまで表示されない
End Sub
Sub test_uf013_04()
    UserForm1.Show vbModeless
    MsgBox "test"   'フォームを閉じなくても表示される
End Sub

ボタンなどからフォームを表示する

ユーザーフォームを表示するプロシージャをワークシート上のボタンなどに割り当てたい場合は以下のページを参考にしてください。

【補足】ユーザーフォームを閉じる

これまでユーザーフォームを閉じるとき、フォーム右上の×ボタンを押下していましたが、ボタンを押してフォームを閉じたいと思う人もいるでしょう。その方法は非常に簡単ですのでここで説明します。

ユーザーフォームに閉じるボタンを追加

ユーザーフォームに『閉じる』ボタンを追加します。ボタンの追加方法は、前ページ(ユーザーフォームの作成)を参考にしてください。

閉じるボタンの追加
閉じるボタンの追加

ボタンのクリックイベントを設定する

その追加したボタンの右クリックから コードの表示 を選択し、追加されたボタンのクリックイベント内に” Unload Me “と記述するだけです。

ボタンのコードを表示
ボタンのコードを表示
閉じるボタンにコードを追加
閉じるボタンにコードを追加

F5 キーを押下するなどしてフォームを表示後、閉じる ボタンでユーザーフォームが閉じることを確認してください。

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