\"KeyPreview/キーボードイベント取得\" プロパティ

Microsoft Access Visual Basic のリファレンス

\"KeyPreview/キーボードイベント取得\" プロパティ

コントロール キーボード イベント プロシージャを呼び出す前にフォーム レベルのキーボードのイベント プロシージャを呼び出すかどうかを示します。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。

expression.KeyPreview

expression 必ず指定します。このトピックの [対象] をクリックして表示される Access オブジェクトのうちの 1 つを返すオブジェクト式を指定します。

解説

"KeyPreview/キーボードイベント取得" プロパティの設定値は次のとおりです。

設定値 Visual Basic 内容
Yes/はい True まず、フォームがキーボード イベントを受け取り、次に、アクティブなコントロールがキーボード イベントを受け取ります。
No/いいえ False アクティブなコントロールだけがキーボード コントロールを受け取ります。(既定値)

メモ このプロパティを設定するには、フォームのプロパティ シートマクロ、または Visual Basic を使用します。

このプロパティは、どのビューでも設定できます。

"KeyPreview/キーボードイベント取得" プロパティを使用すると、フォーム用のキーボード処理プロシージャを作成できます。たとえば、アプリケーションがファンクション キーを使用する場合、"KeyPreview/キーボードイベント取得" プロパティに True を設定すると、キーストローク イベントを受け取るコントロールごとにコードを作成する代わりに、フォーム レベルでキーストロークを処理することができます。

フォーム レベルでのみキーボード イベントを処理し、コントロールではキーボード イベントを受け取らないようにするには、フォームの KeyPress イベント プロシージャで引数 KeyAscii に 0 を設定し、かつ、フォームの KeyDown イベントおよび KeyUp イベント プロシージャで引数 KeyCode に 0 を設定します。

フォームにコントロールが表示されていない場合、または有効なコントロールがない場合、フォームは自動的にすべてのキーボード イベントを受け取ります。

使用例

次の使用例では、フォームの Load イベント プロシージャの中で "KeyPreview/キーボードイベント取得" プロパティに True を設定します。これによって、まず、フォームがキーボード イベントを受け取り、次に、コントロールがキーボード イベントを受け取ります。フォームの KeyDown イベント プロシージャでは、引数 KeyCode の値によって、F2F3、または F4 キーが押されたかどうかが判断されます。

Private Sub Form_Load()
    Me.KeyPreview = True
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
        Case vbKeyF2
            ' F2 キー イベントを処理します。
        Case vbKeyF3
            ' F3 キー イベントを処理します。
        Case vbKeyF4
            ' F4 キー イベントを処理します。
        Case Else
    End Select
End Sub