プロが教えるわが家の防犯対策術!

Excelの(例)A1のセルに検索値を入力しEnterキーを押すと事前に組まれたマクロが起動する方法を教えて下さい。

又はEnterキーにマクロは設定できませんか?

A 回答 (5件)

#4のnojioさんの補足ということでお読みください。

(書いているうちにかぶってしまいました。)

Worksheet_Changeがsumi-hamaさんの意図かもしれませんが・・・下記はEnterに対して機能します。


下記コードを標準モジュールに貼り付け、
 Onkey_Set を実行することでEnterキーにマクロが割り当てられます。
 マクロ側で(MacroTest)Sheet1のA1を特定しています。

 Onkey_Off を実行することでEnterキーは元の機能に戻ります。


'Enterキーにマクロを割り当て
Sub Onkey_Set()
  Application.OnKey "{Enter}", "MacroTest"
End Sub

'デモ(Sheet1のセルA1のみで機能させる)
Sub MacroTest()
  If ActiveSheet.Name = "Sheet1" Then
    If ActiveCell.Address(0, 0) = "A1" Then
      MsgBox "Sheet1のセルA1でEnterキーを押しました"
    End If
  End If
End Sub

'Enterキーを元の機能に戻す
Sub Onkey_Off()
  Application.OnKey "{Enter}"
End Sub
    • good
    • 20

OnKey メソッドを使うと、特定のキーを押したときに、指定されたプロシージャを実行できたと思います。



Application.OnKey "{ENTER}", "MyProc"
    • good
    • 3

私もシート上でENTERキーを入力したことを、イベント(Event Prosedure)として捉えたいと


いつも思っています。しかし正確には、ワークシート上では、VBAでは存在しないと思います。APIなどを使うのではないかと思います。
#1、#2のご解答のことは存じておりますが。
ただ、ご質問者はそれらのご回答に満足されるように思います。それで充分かもしれないからです。しかしChangeイベントやSelectionChangeイベントは微妙に違うのではないでしょうか。例えばA1セルにAが入っていてAとA1セルに打ちこむ
またはEnterだけ打ち込んだら、Changeイベントは反応しなかったような記憶があります。
勿論ワークシートのイベント一覧にはEnter云々は見つかりません。
もし間違っていたらお叱りをお受けします。
もし出きれば、マクロ名をPrivate SubとSubEndの
間に書くだけですが。
    • good
    • 3

初めまして。

下記の様に操作すると貴方様の思い通りの動作をすると思います。

・新規ブックを立ち上げ、ALT+F11を押してVBE画面を表示させ、画面左上にVBAProjectと書かれている下のSheet1にマウスポインターをあわせてダブルクリックし、表示された右側の白い部分に下記のコードを記述する。

Private Sub Worksheet_Change(ByVal Target As Range)

if Target.Address = "$A$1" Then
実行したいマクロ
End if

End Sub

ご不明な点・不具合等がございましたらお気軽に補足して下さい。
    • good
    • 5

こんにちは。



Enterキーのみで絶えずマクロが起動したら、何も出来なくなると思いますが。。

シート名のタブを右クリック-コードの表示で、出てきたVBE画面にコピペします。
A1セルの値が変わるたびに、メッセージが出ます。

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Cells(1, 1).Address = "$A$1" Then
  MsgBox Target.Cells(1, 1).Text
End If
End Sub

参考に。
    • good
    • 5

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A