- ベストアンサー
Excel セルでエンターキー ⇒ リスト(入力規則)表示 できるのでしょうか?
Excel→データ→入力規則→リストを設定。リストを表示するにはセル右側の▼をクリックか、[Alt]+[↓]のようですが、エンターキー[Enter]でリスト表示できないのでしょうか? 同様の質問を検索しましたが、思った回答が見当たりませんでした。 どなた様かご教示のほど、よろしくお願い申し上げます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> エラー表示「マクロ'Book1!ListDropDown'が見つかりません。」になって > しまいました。 すみません。記載もれしました。 OnKey で呼び出すマクロも ThisWorkbook に置いたので、呼び出すマクロ名は ThisWorkbook.ListDropDown としなければなりません。再掲しておきます。設置方法はその通りです。 ' // ThisWorkbook(ブック)モジュール に貼り付けて下さい Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) On Error Resume Next Dim r As Range Set r = Intersect(Target, Target.SpecialCells(xlCellTypeAllValidation)) If Not r Is Nothing Then Application.OnKey "{ENTER}", "ThisWorkbook.ListDropDown" Application.OnKey "~", "ThisWorkbook.ListDropDown" Else Application.OnKey "{ENTER}" Application.OnKey "~" End If Set r = Nothing On Error GoTo 0 End Sub Private Sub ListDropDown() SendKeys "%{DOWN}" Application.OnKey "~" Application.OnKey "{ENTER}" End Sub
その他の回答 (2)
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんばんは。 > エンターキー[Enter]でリスト表示できないのでしょうか? OnKey と SelectionChange イベントの組み合わせで可能かと。。 でも、Enter キーを押すたび(≒選択セルの変更-->SelectionChangeの発生) のたびマクロが走りますので、パフォーマンスを悪くするだけな気もします。 オススメはしません。 ちなみに、マクロを使わずともシートを保護するとセルのクリックで リストがドロップされますけど、これではダメですか? ' // ThisWorkbook(ブック)モジュール に貼り付けて下さい Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) On Error Resume Next Dim r As Range Set r = Intersect(Target, Target.SpecialCells(xlCellTypeAllValidation)) If Not r Is Nothing Then Application.OnKey "{ENTER}", "ListDropDown" Application.OnKey "~", "ListDropDown" Else Application.OnKey "{ENTER}" Application.OnKey "~" End If Set r = Nothing On Error GoTo 0 End Sub Private Sub ListDropDown() SendKeys "%{DOWN}" Application.OnKey "~" Application.OnKey "{ENTER}" End Sub
補足
>ちなみに、マクロを使わずともシートを保護するとセルのクリックで >リストがドロップされますけど、これではダメですか? マウス操作でなくキーボードのみで操作を実現したいと思っています。 >OnKey と SelectionChange イベントの組み合わせで可能かと。。 ありがとうございます。早速、実施してみましたが、エラー表示 「マクロ'Book1!ListDropDown'が見つかりません。」になってしまいました。 当方初心者でVBAの設置方法がいけないのかもしれません。 VBA設定方法は 1.ツール→マクロ→Visual Basic Editor 選択 2.プロジェクト-VBAProject内、ThisWorkbook ダブルクリックで開く 3.おしえて頂いたマクロを貼り付ける 4.Excelに戻り、リスト作成してテスト 5.上記エラー表示 もし間違いがあれば合わせてご教示のほど、よろしくお願い申し上げます。
- imogasi
- ベストアンサー率27% (4737/17069)
無いと思います。あきらめてください。まともにやるには、ワンクリックの為に大変なウインドウズ関係のプログラムの勉強が必要と思います。(下記のVBAのことではありません) ーー あるWEBと私のアイデアで作ってみましたが、まがい物です。 こんなのは使うことをお勧めしませんが。 VBAが経験なければ、無視してください。 ーー リスト用データ F1:F4 東京 京都 奈良 福岡 ーー A1:A10を範囲指定 データー入力規則ーリストー$F$1:$F$4を指定ーOK 以上は通常の話。確認のため書いただけ。 ーー Sheet1のWorksheet_SelectionChangeイベントに Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 1 And Target.Row >= 1 And Target.Row <= 10 Then Dim Dummy As Validation On Error Resume Next Set Dummy = ActiveCell.Validation On Error GoTo 0 If Not Dummy Is Nothing Then SendKeys "%{Down}" End If Set Dummy = Nothing End If End Sub ーーー 操作ステップ (1)A1をクリック(ここだけはクリックかA1:A10以外のセルから矢印キーでA1へ) (2)ドロップダウンが自動で下がる(アイテムが表示される)。 (3)マウスでクリックか下矢印で選択 (4)ENTER(選択のエンター) (5)もう1度ENTER(セル移動のエンター) (6)セルポインタが下セルへ移動(ツールーオプションー編集ーセルの移動方向を下へ設定してあると前提。) (7)(2)と同じ (2)-(6)の繰り返し。
お礼
回答、本当にありがとうございます。 マウスを使わず、矢印キーとエンターキーのみでデータ入力する方法を模索していました。 残念ながらVBAの経験がまったくありませんので、自分で作成することはできませんでした。 例題で教えていただいたVBA、為させていただきました。 解説とてもわかりやすいです。 イメージに近い動きです。 再度選び直そうと↑を押し続けるとデータが変わってしまうので、 横移動の設計で回避できるかと思いました。 参考になりました。ありがとうございました。
お礼
ご教示いただき本当にありがとうございます。 確認させていただきました。 見事にエンターで一覧表示されました。ありがとうございました。 今回2件のご回答で、今後、キーボード操作のみでデータ入力が可能になりそうです。 あまり推奨の動かしかたではないようですが、マウス操作とキーボード操作の行ったり来たりに不満の場合は大いに役立つのではないかな~と勝手に思ってたりして。 本当にありがとうございました。