• 受付
  • 困ってます

エクセル マクロ エンターキーについて

  • 質問No.9726545
  • 閲覧数55
  • ありがとう数0
  • 回答数2

お礼率 16% (1/6)

シートのモジュールに記載する
VBAのコードがわからないので質問します。

範囲A1セルからA10セルまでの間で
エンターキーを押すと
自動的に1という数字を打ってくれる
例A1セルにエンターキー押すと1
A2セルにエンターキー押すと1
と言った内容です。

これのコードってありませんでしょうか?

空白ならば1を打つというコードは
出来たのですが
それだと一度セル内でバックスペースを
打ってからエンターキーを押さないと
空白と認識してくれないので
このような質問しました。


回答よろしくお願いします。

回答 (全2件)

  • 回答No.2

ベストアンサー率 27% (4524/16174)

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
  • 回答No.1

ベストアンサー率 56% (739/1312)

Visual Basic カテゴリマスター
Application.OnKey "{Enter}", プロシージャ名
で可能ですが、通常のエンター操作ができなくなります。
こちらのサイトを参考にしてください。
https://pc.arthhuman.com/enter/
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ