2010/03/12

ショートカットキー抑制

Autokeysマクロで概ねカバーできるが、Alt+のショートカットが漏れる。
なので、フォームキーイベントでの代替案。
Option Compare Database
Option Explicit

Private WithEvents pFrm As Access.Form

Public Sub BindForm(Frm As Access.Form)
 Set pFrm = Frm
 pFrm.NavigationButtons = False 'ナビゲーションボタン
 pFrm.RecordSelectors = False  'レコードセレクタ
 pFrm.KeyPreview = True  'キーボードイベント取得
 pFrm.OnKeyDown = "[EVENT PROCEDURE]"
End Sub

Private Sub pFrm_KeyDown(KeyCode As Integer, Shift As Integer)
 Select Case Shift
  Case 0 'なし
  Case 1 'shift(16)
  Case 2 'Ctrl(17)
  Case 3 'shift+alt
  Case 4 'alt(18) alt+F4終了,alt+F11 VBE
   If KeyCode = vbKeyF4 Or KeyCode = vbKeyF11 Then KeyCode = 0
  Case 5 'shift+alt
  Case 6 'Ctrl+alt
  Case 7 'shift+Ctrl+alt
 End Select
End Sub

0 件のコメント: