【Access⑲】フォームで矢印↑↓キーでレコード(行)移動する

Accessのフォームでは、キーボードの矢印(↑↓)キーでは、レコード(縦方向)の移動ができず、レコード内の次のオブジェクトに移動しますが、Excelと同じ感覚で縦に移動したいときがあります。今回は、VBAを使って縦に移動する方法を解説します。

目次

キーボードの矢印(↑↓)キーの移動について

まず、Accessフォームの仕様では、レコード内の各オブジェクトのプロパティの[タブ移動順]に従って次のオブジェクトに移動します。すべてのオブジェクトへの移動が終わってから次のレコードに移動します。

通常のカーソルの移動順

参考(カーソルの移動順)

タブ移動順プロパティ

レコード内のオブジェクトに移動してから、次のレコードに移動する

VBAで矢印(↑↓)キーでの移動を記述する

それでは、ここから矢印(↑↓)キーで移動する方法を解説していきます。

キーボードイベント取得プロパティを変更する

  1. フォームをデザインビューで開き、左上の角をクリックします。
  2. プロパティシートの[イベント]タブをクリックします。
  3. [キーボードイベント取得]を[はい]にします。

この設定忘れがちなので注意

キークリック時イベントにVBAを記述する

  1. フォームをデザインビューで開き、左上の角をクリックします。
  2. プロパティシートの[イベント]タブをクリックします。
  3. [キークリック時]の[…]にします。
  1. [コードビルダー]をクリックし、
  2. [OK]をクリックします。

VBAの編集画面に↑のように記述します。(コピペ用に下にも貼っておきます。)

VBA(コピペ用)

On Error goto ERR
Select Case KeyCode
  Case vbKeyUP
Docmd.GoToRecord,,acPrevious
Case vbKeyDown
Docmd.GoToRecord,,acNext
Case Else

End Select
Exit Sub
ERR:
Resume Next

これで準備は整いました。フォームビューで開いて矢印(↑↓)キーで移動するか確認してみてください。

  • URLをコピーしました!
目次