2014年11月8日土曜日

[VBA] Access のウィンドウを非表示にする

Microsoft Office のユーザフォームを残して、Access 本体の画面を表示しない方法です。

これは Windows API の ShowWindow 関数を使用する方法です。この方法では、Access のウィンドウを最小化しています。ウィンドウが隠れているだけなので、Windowsのタスクバーから Access のタスクをクリックすればウィンドウが表示されます。

Access の場合は、データベースの起動時に実行する AutoExec マクロなどからこの処理を実行すればよい。(AutoExec から実行するプロシージャは Function にする必要あり)

Const SW_SHOWMINIMIZED = 2

Declare Function ShowWindow Lib "User32" ( _
    ByVal hWnd As Long, ByVal nCmdShow As Long) As Long

Function WindowMinimize() As Boolean
    Dim result As Long
    result = ShowWindow(Application.hWndAccessApp, SW_SHOWMINIMIZED)
    DoCmd.OpenForm ("サンプルフォーム")
    WindowMinimized = True
End Sub

■ 参考資料

ShowWindow
http://msdn.microsoft.com/ja-jp/library/cc411211.aspx

データベースを開いたときに実行されるマクロを作成する(Access 2007)
http://office.microsoft.com/ja-jp/access-help/HA010336239.aspx