#259 Access本体の閉じるボタンを無効化するには? VBA

Access本体のウィドウ右上にある[閉じる]ボタンを無効にして使えなくする方法です。この方法を使うことによって、Accessをメニューやコマンドボタンのプログラムなどからしか閉じられないようにすることができます。


それにはWindows APIを使いますので、まず標準モジュール等に以下の宣言を記述します。
Public Declare Function GetSystemMenu Lib "user32" _
   (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Public Declare Function DeleteMenu Lib "user32" _
   (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Public Declare Function DrawMenuBar Lib "user32" _
   (ByVal hwnd As Long) As Long
Public Const MF_BYCOMMAND = &H0
Public Const SC_CLOSE = &HF060

起動時の設定で最初に自動的に表示されるフォームの"Form_Load"イベントプロシージャなどで、ボタンの無効化を実行するようにします。もちろん、そのタイミングにこだわらず、任意のタイミングでこの処理を実行することも可能です。
Private Sub Form_Load()
'フォーム読み込み時

  Dim hMenu As Long

  'システムメニューのハンドルを取得
  hMenu = GetSystemMenu(Application.hWndAccessApp, 0)
  '閉じるボタンを無効にする
  DeleteMenu hMenu, SC_CLOSE, MF_BYCOMMAND
  'メニューを再描画
  DrawMenuBar Application.hWndAccessApp

End Sub
| Index | Prev | Next |

この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......
T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします
 

Copyright © T'sWare All rights reserved