ユーザーフォームを終了する

Unloadステートメントはフォームを終了するコード、閉じる際の処理についても解説

'コードフォームを終了する
Unload Me
'「UserForm1」を終了する
Unload UserForm1

ユーザーフォームを終了するには「Unload」ステートメントを使用します
このステートメントの引数にはフォームを指定します
1つ目はコードのあるユーザーフォームを終了します
2つ目は指定のフォームを終了します

コードを実行するとメモリ上から解放されます、関連するデータ全てメモリから解放されるので入力されていた内容も全て消去されます

Unloadの注意点

またこのステートメントで注意点として、読み込みされていないフォームを指定した場合はLoadが実行されてからこのUnloadが実行されます

エラーは出ないし、結果的に終了状態ではありますが、起動する無駄が発生するので基本的にはフォームは「Me」オブジェクトを対象にするのが良いと思います

閉じるボタンはいらない

ユーザーフォーム自体の×ボタンで終了することが可能なので、このコードがなくてもフォームを終了することは可能です

なのでこのステートメントを使用した閉じるボタンは基本的に必要ありません
Windowsを使用している環境でウィンドウの×ボタンが使いづらいことも考えにくいです
むしろ、慣れていれば直感的に×ボタンを使用して閉じるボタンを使わない可能性があります

終了処理を作成したい場合は、ボタンの処理で行うのではなく「QueryClose」イベントか「Terminate」イベントに作成します
この2つのイベントはフォームの終了時に発生するイベントです
Unloadステートメントも×ボタンによる終了もこれらのイベントは発生します

なので、このステートメントは処理中の自己フォームの終了かユーザーの操作しない情報表示のフォームを終了させたりする場合に使えます

またWinAPIにより×ボタンを無効にしてそちらから終了できないようにして、閉じるボタンを作成するような処理は完全に無駄な作業なのでしなくていいです

タスクキルや強制終了の方法はいくつかありそれらに対応する必要がでてきますので、それをするくらいなら終了イベントだけで対応したほうがよっぽど楽ですし、ユーザーにとっても有益だと思います