1-6 フォームを表示せずに読み込むユーザーフォーム 2021.11.16
【構文】Load オブジェクト
フォームには3つの状態があります。
1.インスタンスが生成されていないNothing状態
2.インスタンスが生成されていて非表示の状態
3.インスタンスが生成されていて表示の状態
フォームを表示せずに読み込むのは「2.」の状態を指します。
「2.」の状態にする場合にはLoadステートメントを使用します。
フォームのインスタンスを生成すると、プロパティの取得・設定や、メソッドの実行が可能となります。
次の例では、フォーム1を表示する際に、併せてフォーム2を表示せずにインスタンスを生成し、プロパティの値を変更しています。
サンプルコード
【UserForm1】
Private Sub UserForm_Initialize() 'フォーム1の初期化イベント Load UserForm2 'フォーム2読み込み・非表示 UserForm2.Height = 100 UserForm2.Width = 500 End Sub
Private Sub UserForm_Click() 'フォーム1のクリックイベント UserForm2.Show 'フォーム2を表示 End Sub
【UserForm2】
Private Sub UserForm_Initialize() MsgBox "フォーム2が読み込まれました!", vbInformation End Sub
【標準モジュール】
Sub Form_Show_Modal() UserForm1.Show End Sub
標準モジュールのマクロ「Form_Show_Modal」を実行します。
フォーム1のInitializeイベントで、フォーム2のインスタンスを生成するため、フォーム2のInitializeイベントが発生し、メッセージが表示されます。

メッセージの「OK」を押すと、フォーム1が表示されます。

フォーム1をクリックすると、非表示だったフォーム2が表示されます。

この例からも、インスタンスが生成された状態で、プロパティの設定が行えることを確認できます。