使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
プロパティ欄にFunctionを選定する方法ではイベントの引数を渡すのは無理ですね。
代替手段として下記の2つが考えられます。
1.APIを使ってキーが押されているかどうかを判定する
下記を参考にしてください。
3.1 キーボードからの入力を判定する- Excel VBA ゲーム Tips
2.クラスモジュールを使う
プロパティ欄に直接設定するという形ではないですが、複数のコントロールのイベントを一元管理できます。
クラスモジュールで検索するといろいろ解説は見つかると思いますが、とりあえず簡単なコード例を出しておきます。
VBA画面のメニューから[挿入]-[クラスモジュール]をクリックしてそこで下記のように記述します。
Option Compare Database
Option Explicit
Private WithEvents mCbx As Access.ComboBox
Public Sub Bind(objCtl As Access.ComboBox)
Set mCbx = objCtl
mCbx.OnKeyDown = "[EVENT PROCEDURE]"
End Sub
Private Sub mCbx_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyDown
MsgBox "keyDown"
'処理
End Select
End Sub
これを clsMyComboBox と名前をつけて保存します。
フォームのモジュールの宣言部と読み込み時のイベントプロシージャを下記のように記述します。
Private Cbx(2) As New clsMyComboBox
Private Sub Form_Load()
Cbx(0).Bind Me.cmb区分
Cbx(1).Bind Me.cmbXXX
Cbx(2).Bind Me.cmbYYY
End Sub
プロパティに設定するのではなく、読み込み時に関連付けることになります。