リストボックス内のレコードをEnterキーで選択する

スポンサーリンク

Accessに限らず、パソコンの入力操作をできるだけ早く行う工夫として、「マウスを使わずに入力する」ことが挙げられます。

フォームを作るときのポイントは、

  1. タブ移動順を入力順に設定する
  2. 入力ボタン、削除ボタン、キャンセルボタンなどはキーにボタンの機能を割り付ける
  3. コンボボックス、リストボックスもキーボードのみで選択できるようにする

の3点です。

フォームにリストボックスを設置
フォームにリストボックスを設置

今日は、3.のコンボボックス、リストボックスをキーで操作する方法から、リストボックスに絞って記事にしたいと思います。

テーブルのデータを更新したり、削除したりするとき、レコードを選択するのにリストボックスを使用することがあります。

和休の場合、リストボックスからデータを選ぶときは、リストボックスをダブルクリックしたときのイベントを使うことが多いです。

ですが、キーボードだけで選択できたらマウスの操作が省けますよね。

そこで、自然な動きになるように、リストボックスの中から↑キーと↓キーでレコードを選び、Enterキーを押すことでそのレコードを決定するような方法をご紹介します。

スポンサーリンク

リストボックスのレコードをEnterキーで選択する

使用される際は、そちらの環境で十分テストのうえ使用してください。

フォームにリストボックスを設置

まいどおなじみの都道府県庁の一覧です。

フォームが開いたときに、リストボックスの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キーを押下しても、同じ動きをするように記述しています。

  • 大きいEnterキー … vbKeyReturn
  • 小さいEnterキー … vbKeySeparator
リストボックスの4行目を選択したところ

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

リストボックスの4行目を選択してEnterキーを押下したところ
Enterキーを押下

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

コメントをどうぞ!

タイトルとURLをコピーしました