トップ > 逆引きで学ぶ ユーザーフォーム&コントロール > 1-6 フォームを表示せずに読み込む

1-6 フォームを表示せずに読み込むユーザーフォーム   2021.11.16

次の書籍の第1章~5章を公開しています。
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」

目次  前頁   次頁  索引

【構文】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が表示されます。


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


書籍紹介140以上のサンプルファイル付き!

知りたいがすぐわかる! やりたいがすぐできる!
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」(Kindle版)
ユーザーフォームを扱えると、VBAでできることが大きく広がります!
本書では、知りたいこと、やりたいことから、逆引きで学びを深められます。

■ 購入:amazon

ページトップへ戻る
Copyright(C) 2009- 坂江 保 All Rights Reserved.