#340 | Access本体の[最小化]・[最大化]ボタンを使えなくするには? | VBA、API | |||||
Access本体のウィンドウ右上にある[最小化]・[最大化]ボタンを使えなくする方法です。 このプログラムを、起動時に表示するフォームの読み込み時イベントプロシージャなどから実行することによって、そのデータベースアプリケーション使用時はAccess本体のウィンドウサイズをユーザーが勝手に変更できないようにすることができます。 Option Compare Database Option Explicit Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _ (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Const WS_MINIMIZEBOX = &H20000 '最小化ボタン Private Const WS_MAXIMIZEBOX = &H10000 '最大化ボタン Private Const GWL_STYLE = -16 Public Sub InvalidAccessResize() Dim lngSetValue As Long '現在の設定値を取得 lngSetValue = GetWindowLong(Application.hWndAccessApp, GWL_STYLE) '最小化ボタンを外す lngSetValue = lngSetValue And Not WS_MINIMIZEBOX '最大化ボタンを外す lngSetValue = lngSetValue And Not WS_MAXIMIZEBOX '新しい設定値を設定 SetWindowLong Application.hWndAccessApp, GWL_STYLE, lngSetValue End Sub 元のAccessウィンドウ 実行後のAccessウィンドウ この設定をプログラムから元に戻すには、次のように各条件を"OR"で繋げます。もちろんAccessを再起動すれば、このような処理をすることなく、上記の無効化は消えて本来の状態に戻っています。 '最小化ボタンを元に戻す
lngSetValue = lngSetValue Or WS_MINIMIZEBOX '最大化ボタンを元に戻す lngSetValue = lngSetValue Or WS_MAXIMIZEBOX |
|||||||
|
Copyright © T'sWare All rights reserved |