Accessに限らず、パソコンの入力操作をできるだけ早く行う工夫として、「マウスを使わずに入力する」ことが挙げられます。
フォームを作るときのポイントは、
- タブ移動順を入力順に設定する
- 入力ボタン、削除ボタン、キャンセルボタンなどはキーにボタンの機能を割り付ける
- コンボボックス、リストボックスもキーボードのみで選択できるようにする
の3点です。

今日は、3.のコンボボックス、リストボックスをキーで操作する方法から、リストボックスに絞って記事にしたいと思います。
テーブルのデータを更新したり、削除したりするとき、レコードを選択するのにリストボックスを使用することがあります。
和休の場合、リストボックスからデータを選ぶときは、リストボックスをダブルクリックしたときのイベントを使うことが多いです。
ですが、キーボードだけで選択できたらマウスの操作が省けますよね。
そこで、自然な動きになるように、リストボックスの中から↑キーと↓キーでレコードを選び、Enterキーを押すことでそのレコードを決定するような方法をご紹介します。
リストボックスのレコードをEnterキーで選択する

まいどおなじみの都道府県庁の一覧です。
フォームが開いたときに、リストボックスの1行目を自動的に選択しています。こうしておくことで、バグの回避にもつながります。
リストボックスの1行目を選択する方法はこちらをご覧ください

キークリック時イベントに、次のVBAを記述します。
なお、この例でのリストボックスの名前は、「lst_都道府県庁選択」です。
Private Sub lst_都道府県庁選択_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyReturn Or KeyCode = vbKeySeparator Then MsgBox Me.lst_都道府県庁選択.Column(1) & " が選択されました。", vbInformation End If End Sub
VBAのコードが入力できたら保存して、フォームをフォームビューに切り替えてください。
なお、Enterキーは、キーボードに大きいEnterキーと、テンキー横に小さいEnterキーがあります。VBAでは、キーコードが分かれています。
今回の例では、どちらのEnterキーを押下しても、同じ動きをするように記述しています。

↓キーを押して、4行目のデータを選択しました。

Enterキーを押下しました。「宮城県庁が選択されました。」とメッセージボックスが表示されたら成功です。
コメントをどうぞ!