Excelアプリケーションにスプラッシュスクリーンを表示する。

Excelでアプリケーションを構築する場合に,アプリケーションらしく見せるために,また,アプリケーションが起動時初期設定でユーザーを待たせている間に表示するスプラッシュスクリーンを導入する手法です。
スプラッシュスクリーンにはセンスや工夫が必要ですが,それを制御するコードは非常に簡単なもので,最小で3つのプロシージャに1行づつ記述するだけです。

上の図の例のように,スプラッシュスクリーンをフォームで作成します。このフォームを起動するため,ワークブックが開かれた時のイベントにフォームを表示するよう記述します。具体的には,ThisWorkbookのコードに以下のように書きます。

そのフォームが開かれた時に,スプラッシュスクリーンとして表示したあと,時間を指定して自動的に消えるように以下のコードを記述します。

Application.OnTimeは指定時刻にサブルーチンを実行を予約することができます。
Now + TimeValue(“00:00:02”) は現在時刻から2秒後の時刻となります。
この時刻に KillForm というサブルーチンを実行しますので,標準モジュールに以下のようにサブルーチンを作成します。

この手法はオライリーのExcel Hacksという書籍にあった手法ですが,私が応用したのは,Excelの起動時にマクロである初期設定を行うのですが,この処理がデータ量により0~数秒かかるので,長くかかる場合,ユーザーにフリーズしたのかと思わせないようにスプラッシュスクリーンにプログレスバーも表示し,完了後2秒まで表示する,という風にしました。

関連記事