- ベストアンサー
Enterキーでマクロを起動さす。
Excelの(例)A1のセルに検索値を入力しEnterキーを押すと事前に組まれたマクロが起動する方法を教えて下さい。 又はEnterキーにマクロは設定できませんか?
- みんなの回答 (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)
OnKey メソッドを使うと、特定のキーを押したときに、指定されたプロシージャを実行できたと思います。 Application.OnKey "{ENTER}", "MyProc"
- imogasi
- ベストアンサー率27% (4737/17069)
私もシート上でENTERキーを入力したことを、イベント(Event Prosedure)として捉えたいと いつも思っています。しかし正確には、ワークシート上では、VBAでは存在しないと思います。APIなどを使うのではないかと思います。 #1、#2のご解答のことは存じておりますが。 ただ、ご質問者はそれらのご回答に満足されるように思います。それで充分かもしれないからです。しかしChangeイベントやSelectionChangeイベントは微妙に違うのではないでしょうか。例えばA1セルにAが入っていてAとA1セルに打ちこむ またはEnterだけ打ち込んだら、Changeイベントは反応しなかったような記憶があります。 勿論ワークシートのイベント一覧にはEnter云々は見つかりません。 もし間違っていたらお叱りをお受けします。 もし出きれば、マクロ名をPrivate SubとSubEndの 間に書くだけですが。
- vbafriend
- ベストアンサー率47% (17/36)
初めまして。下記の様に操作すると貴方様の思い通りの動作をすると思います。 ・新規ブックを立ち上げ、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)
こんにちは。 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 参考に。