Accessアプリケーションにひと手間かけてカッコよくしよう!~起動時にスプラッシュ画面を表示~

自作のAccessアプリケーションにひと手間かけてちょっとカッコよくしてみようか!?と言うのが今回のテーマです。
正直、自己満足なテクニックになりますが・・・、アプリケーションを起動した際に自作のスプラッシュ画面を表示させてみましょう。

ちなみにスプラッシュ画面とはExcelやAccessなどソフトを起動するときに表示される以下の画面の事です。
スプラッシュ画面を設定する

スプラッシュ用のフォームを作成しましょう。

まずはスプラッシュ用のフォームを作成します。仮にフォーム名は[frm_splash]とします。
フォームには好みのテキストやイメージ画像を配置して下さい。

スプラッシュ画面

フォームのプロパティは以下の設定をご参考下さい。
[境界線スタイル:なし]、[ポップアップ:はい]、[作業ウィンドウ固定:はい]、[レコードセレクタ:いいえ]、[移動ボタン:いいえ]、[自動中央寄せ:はい]、[コントロールボックス:いいえ]、[閉じるボタン:いいえ]、[最小化/最大化ボタン:いなし]

タイマー時のイベントプロシージャを設定します。

フォームのプロパティでタイマー時のイベントプロシージャとタイマー間隔の設定を行います。
尚、タイマー間隔の数字はお好みで調整して下さい。※サンプルの設定では3500ms(3.5秒)にしています。

フォームのプロパティ

イベントプロシージャに設定するVBAコードはとっても簡単で以下の通りです。

Private Sub Form_Timer()
'スプラッシュフォームを閉じる
    DoCmd.Close
'メインメニューを開く(次に開くフォームは任意で設定して下さい)
    DoCmd.OpenForm "frm_menu", acNormal, "", "", , acNormal
End Sub

上記のVBAを解説すると、スプラッシュフォームを表示した3.5秒後にスプラッシュフォームを閉じて次のフォーム[frm_menu]を表示するといった動作です。

ついでにAccess自身も非表示にします(これはお好みで)

スプラッシュフォームのプロパティでイベント[開くとき]に以下のVBAコードを設定します。

Private Sub Form_Open(Cancel As Integer)
    Dim RC As Long
' オープン時に、Access自身を非表示に設定する
    RC = ShowWindow(Application.hWndAccessApp, SW_SHOWMINIMIZED)
End Sub

あわせて標準クラスを作成して以下のVBAコードを設定して下さい。

Option Compare Database
Option Explicit

' オープン時に、Access自身を最小化に設定する為の API 宣言
Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, _
    ByVal nCmdShow As Long) As Long
Public Const SW_SHOWMINIMIZED = 2   ' ウィンドウをアクティブにして最小化

起動時に表示するフォームを設定します

■Access2010の場合
[ファイル]→[プロパティ]→[カレントデータベース]の[フォームの表示]で作成したスプラッシュフォームを選択します。

起動時のフォームを設定する

以上で完了です。

一度、Accessを終了して再度起動してください。先ほど作成したスプラッシュフォームがしばらく表示された後、次の画面に進みます。
簡単な設定なので機会があったら試してくださいね。

以上、今回は起動時のスプラッシュフォームの設定方法についてでした。

今回のサンプルファイルは以下のリンクからダウンロード可能です。