経緯
Excelでユーザーフォームを使ってツールを作成している中で、
プログラムを実行したあともフォームが画面に残ったままになるのが気になっていました。
見た目としても気になりますし、処理が完了したことを明確に示すためにも、フォームは閉じたいと思い、
今回は「プログラムの実行後にユーザーフォームを自動的に消す方法」を学びました。
解決方法:Unload Meを使う
結論として、VBAでは Unload Me を使うことで、ユーザーフォームを閉じることができます。
たとえば、フォームの実行ボタンに処理を記述している場合、その最後に Unload Me を追加するだけでOKです。
サンプルコード
Private Sub CommandButton1_Click()
' ここに何らかの処理を書く
MsgBox "処理が完了しました。"
' フォームを閉じる
Unload Me
End Sub
このようにしておけば、処理が完了したあとに自動的にフォームが閉じるため、ユーザー側の操作は不要になります。
補足:Unload Meの意味
Unloadは、フォーム(オブジェクト)を完全に破棄する命令です。Meは、現在表示されているフォーム自身を指します。
つまり Unload Me は、「このフォームを完全に閉じる」という意味になります。
まとめ
- ユーザーフォームを実行後に自動で閉じたい場合は、最後に
Unload Meを記述するだけ - 見た目もスッキリし、処理完了の合図としてもわかりやすい
- フォームを残しておく必要がない場合には、積極的に使うと便利
ちょっとした工夫ですが、使い勝手やユーザー体験の向上に大きく影響します。
ぜひ導入してみてください。
技術書の購入コストを抑えてスキルアップするなら

ここまで読んでいただきありがとうございます。最後に宣伝をさせてください。
プログラミングの技術書や参考書は、1冊3,000円〜5,000円するものも多く、出費がかさみがちです。Kindle Unlimitedであれば、月額980円で500万冊以上の書籍が読み放題となります。
気になる言語の入門書から、アルゴリズム、基本設計の専門書まで、手元のスマホやPCですぐに参照可能です。現在は「30日間の無料体験」や、対象者限定の「3か月499円プラン」なども実施されています。まずはご自身のアカウントでどのようなオファーが表示されるか確認してみてください。
