- 締切済み
エクセル マクロ エンターキーについて
シートのモジュールに記載する VBAのコードがわからないので質問します。 範囲A1セルからA10セルまでの間で エンターキーを押すと 自動的に1という数字を打ってくれる 例A1セルにエンターキー押すと1 A2セルにエンターキー押すと1 と言った内容です。 これのコードってありませんでしょうか? 空白ならば1を打つというコードは 出来たのですが それだと一度セル内でバックスペースを 打ってからエンターキーを押さないと 空白と認識してくれないので このような質問しました。 回答よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
Enterキー押し下げは、キー入力受付という根底的な役割を持たせているので、特別なもののようだ。 普通質問のようなのは、シートのEventで拾うタイプなのだが、Enter押し下げのイベントはなく、シートのChangeイベントでも、Enter押し下げ、は拾えない。 Enterキーインイベントは、コントロールのイベントの中でも、テキストボックス以外はなかったように記憶する。 ・便法として、何か文字を1文字なり入れる約束にするとか、 ・Selection Changeイベントで代用できないか。 ・#1のご回答のようなOnKeyメソッドなど しかないでしょう。 ーー やってみたコード ・空白以外の入力なら、1を入れる(1に変える)。 シートイChangeベントに Private Sub Worksheet_Change(ByVal Target As Range) r = Target.Row Application.EnableEvents = False MsgBox "値=" & Target MsgBox r Cells(r, "A") = 1 If Target = "" Then Cells(r, "A") = "1" End If Application.EnableEvents = True End Sub === Onkeyのテスト これが質問のニーズに近いかな。 https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.onkey テンキーのEnterキーだけ押すと1が入る例。 標準モジュールに Sub test02() Application.OnKey "~ ", "Proc1" ’””の中はチルダです End Sub Sub Proc1() MsgBox "エンターキー押し下げ" ActiveCell = 1 End Sub
- kkkkkm
- ベストアンサー率66% (1725/2595)
Application.OnKey "{Enter}", プロシージャ名 で可能ですが、通常のエンター操作ができなくなります。 こちらのサイトを参考にしてください。 https://pc.arthhuman.com/enter/