HOME > 即効テクニック > Excel VBA > ファイル操作関連のテクニック > ブックオープン時に自動的にフォームを表示して閉じる

ブックオープン時に自動的にフォームを表示して閉じる|Excel VBA

ファイル操作関連のテクニック

ブックオープン時に自動的にフォームを表示して閉じる

(Excel 2000/2002/2003/2007/2010)

ブックを開いたときにユーザーフォームを表示し、一定時刻が経過したら自動的に閉じる方法をご紹介します。アプリケーション起動時にロゴが表示されるのと同じような動作をさせることができます。

(1)まず、表示したいフォームを用意します。このフォームを「UserForm1」とします。
プックオープン時に発生する「Open」イベントで、ユーザーフォーム「UserForm1」を開きます。

●ThisWorkbookモジュール●

Private Sub Workbook_Open()
    UserForm1.Show
End Sub

(2)ユーザーフォームがアクティブになったときに発生する「Activate」イベントで、指定した時刻にマクロを実行する処理を記述します。
特定の日時、または特定の期間の経過後にマクロを実行するには、ApplicationオブジェクトのOnTimeメソッドを使用します。
ここでは、2秒後に「KillTheForm」というマクロを呼び出します。

●UserFomr1のフォームモジュール●

Private Sub UserForm_Activate()
    Application.OnTime Now + TimeValue("00:00:02"), "KillTheForm"
End Sub

(3)標準モジュールにユーザーフォームをメモリから削除するマクロを作成します。

●標準モジュール●

Sub KillTheForm()
    Unload UserForm1
End Sub

●補足●

UserForm1をアプリケーションモーダルで表示します。ユーザーフォーム表示中はExcelの操作はできません。ただし、[×]ボタンをクリックするとKillTheFormマクロの実行前にユーザーフォームを閉じることができます。