• ベストアンサー

Enterキーでマクロを起動さす。

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

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.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

その他の回答 (4)

  • nojio
  • ベストアンサー率0% (0/3)
回答No.4

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

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

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

  • vbafriend
  • ベストアンサー率47% (17/36)
回答No.2

初めまして。下記の様に操作すると貴方様の思い通りの動作をすると思います。 ・新規ブックを立ち上げ、ALT+F11を押してVBE画面を表示させ、画面左上にVBAProjectと書かれている下のSheet1にマウスポインターをあわせてダブルクリックし、表示された右側の白い部分に下記のコードを記述する。 Private Sub Worksheet_Change(ByVal Target As Range) if Target.Address = "$A$1" Then 実行したいマクロ End if End Sub ご不明な点・不具合等がございましたらお気軽に補足して下さい。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

こんにちは。 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 参考に。

関連するQ&A

専門家に質問してみよう