ユーザーフォームを閉じる(Unload文)

VBA のプログラムの中からユーザーフォームを閉じる方法です。 Unload 文を使ってユーザーフォームのオブジェクトをメモリから削除します。結果としてユーザーフォームが閉じることになります。ここでは Excel のユーザーフォームで VBA を使ってユーザーフォームを閉じる方法について解説します。

(Last modified: )

ユーザーフォームを閉じる

ユーザーフォームを VBA のプログラムの中から閉じるには Unload 文を使用します。 Unload 文を実行するとメモリから対象のオブジェクトが削除されます。書式は次のとおりです。

Unload object

メモリから削除するオブジェクトを指定してください。例えば表示されている UserForm1 オブジェクトをメモリから削除するには次のように記述します。

Option Explicit

Sub テスト()
    Unload UserForm1
End Sub

ユーザーフォームを閉じるのではなく一時的に非表示にする場合は Hide メソッドを使用します。詳しい使い方については「ユーザーフォームを非表示にする(Hideメソッド)」を参照されてください。

サンプルコード

それでは簡単なサンプルを作成して試してみます。

あらかじめ次のようなユーザーフォームを作成しています。ユーザーフォームのオブジェクト名は UserForm1 です。また設置されているコマンドボタンのオブジェクト名は CommandButton1 です。

ユーザーフォームを閉じる(1)

標準モジュールの中のモジュールに次のようにプログラムを記述しました。(モジュールを追加してコードウィンドウを表示する方法については「VBAプログラムの作成と実行」を参照されてください)。

Option Explicit

Sub テスト()
    UserForm1.Show
End Sub

ユーザーフォームを閉じる(2)

コマンドボタンをクリックしたらユーザーフォームを閉じるように設定します。コマンドボタンをダブルクリックしてください。次のようにコマンドボタンに対する Click イベントのイベントプロシージャが表示されます。

ユーザーフォームを閉じる(3)

ユーザーフォームを閉じる(4)

イベントプロシージャに次のように記述してください。コマンドボタンがクリックされると、 UserForm1 オブジェクトがメモリから削除されます。

Private Sub CommandButton1_Click()
    Unload UserForm1
End Sub

ユーザーフォームを閉じる(5)

それではプログラムを実行してみます。「Sub/ユーザーフォームの実行」をクリックしてください。

ユーザーフォームを閉じる(6)

プログラムが実行されてユーザーフォームが表示されました。

ユーザーフォームを閉じる(7)

ユーザーフォームに設置されているコマンドボタンをクリックしてください。メモリからユーザーフォームが削除されてユーザーフォームが閉じます。

ユーザーフォームを閉じる(8)

ユーザーフォームを閉じる(9)

-- --

Excel のユーザーフォームで VBA を使ってユーザーフォームを閉じる方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。