ExcelVBA ユーザーフォームを閉じてリソースを解放して終了する方法

 

ExcelVBA ユーザーフォームを閉じることで、使用後のリソースを解放し、メモリ使用量を削減する。操作を終了したり、次のステップに進む際に利用します。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

2025年の目標は繰り返し作業に悩まされない年にしませんか? Excel VBAを活用した効率化がその第一歩
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事

 

Excel VBA ユーザーフォーム 閉じるシーン

以下のようなシーンで利用で表示します。

・データ入力完了後にフォームを閉じる。

・ユーザーが「キャンセル」や「閉じる」ボタンを押したとき。

・フォームの表示を切り替える。

使い方

ユーザーフォームを閉じるには主に2つの方法があります。

1. Unload
・フォームを閉じて完全にメモリから解放します。
2. Hide
・フォームを非表示にして再度表示可能な状態を維持します。

ポイント

・ Unload を使用する場合、フォームの状態はすべてリセットされます。

・ Hide を使用する場合、フォームのデータや状態は保持されますが、非表示のままメモリを占有します。

 

Excel VBA  ユーザーフォーム 閉じるのサンプルコード

Excel VBAで効率化の準備をしてみませんか?2025年をよりスムーズに過ごすための資格
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

標準モジュール(ユーザーフォームを表示)

Option Explicit

Sub ShowUserForm()
    ' ユーザーフォームを表示
    UserForm1.Show
End Sub

フォームモジュール(閉じるボタンで Unload を使用する)

Option Explicit

Private Sub CommandButton1_Click()
    ' フォームを閉じて解放
    Unload Me
End Sub

フォームモジュール(閉じるボタンで Hide を使用する)

Option Explicit

Private Sub CommandButton2_Click()
    ' フォームを非表示にする
    Me.Hide
End Sub

フォームモジュール(フォームを非表示後にデータを利用する)

Option Explicit

Private Sub CommandButton3_Click()
    ' データ入力後にフォームを非表示
    Me.Hide
    MsgBox "入力されたデータ:" & Me.TextBox1.Value
End Sub

ThisWorkbook(シート上のボタンからフォームを閉じる)

Option Explicit

Sub CloseUserFormFromSheet()
    ' フォームが開いている場合に閉じる
    If UserForm1.Visible Then Unload UserForm1
End Sub

初心者は、用途に応じてどちらを使うべきかを考えると混乱が減ります。サンプルコードをコピペで実行して、フォームの動作を確認してください。

Excel VBAで自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。