【会員アンケートご協力のお願い】抽選で計5名様に役立つ書籍をプレゼント!
ブックオープン時に自動的にフォームを表示して閉じる|Excel VBA |
ブックを開いたときにユーザーフォームを表示し、一定時刻が経過したら自動的に閉じる方法をご紹介します。アプリケーション起動時にロゴが表示されるのと同じような動作をさせることができます。
(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マクロの実行前にユーザーフォームを閉じることができます。