1-8 フォームを破棄するユーザーフォーム 2021.11.16
次の書籍の第1章~5章を公開しています。
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」
【構文】Unload オブジェクト
ユーザー操作でフォームを閉じる(破棄)するには、ウィンドウの右上隅の[×]を押します。
コードから、フォームを破棄するには、Unloadステートメントを用います。
このステートメントは、フォームのインスタンスをメモリから破棄するため、フォームに入力した値や変更等も破棄されます(Hideメソッドでの非表示ではプロパティ値は保持されます)。
サンプルコード
フォームをクリックするとフォームが破棄される
Private Sub UserForm_Click() Unload Me 'Unload UserForm1 End Sub
【補足情報】図解:フォームの生成・表示・非表示・破棄
灰色・青色・オレンジ色の図形がフォームの状態を表し、矢印がメソッド・ステートメントの動作を表します。
生成(読み込み) : Loadステートメント
表示 : Showメソッド
非表示 : Hideメソッド
破棄 : Unloadステートメント
コラム② 「Me」とは?
前述「1-8」のサンプルコードでMeというキーワードがでてきました。
Meとは自分自身(のオブジェクト)を指します。つまり、その時の主体によってMeのオブジェクトは変わります。
Meは、主体となるオブジェクトが明確な、イベントと関連しています。
Excelにおいては、次のイベント内でMeを用いることができます。
・アプリケーション イベント
・ブック イベント
・シート イベント
・ユーザーフォーム イベント
コマンドボタン等、個々のコントロールイベントはMeの対象外となります。
前述「1-8」のコードは、ユーザーフォームのClickイベントなので、Meはユーザーフォームを表します。
シートのイベントの場合、Meは該当のシートを表します。
先に挙げた4タイプのオブジェクトのイベント内で、Meを用いた記述はできますが、アプリケーションイベントは、クラスモジュールに記述するので、その点は留意が必要です。
[ アプリケーションイベントの詳細 ]
書籍紹介140以上のサンプルファイル付き!
知りたいがすぐわかる! やりたいがすぐできる!
「Excel VBA 逆引きで学ぶ ユーザーフォーム&コントロール」(Kindle版)
ユーザーフォームを扱えると、VBAでできることが大きく広がります!
本書では、知りたいこと、やりたいことから、逆引きで学びを深められます。
■ 購入:amazon