| 
    
     |  | ▼MONKEY さん: おはようございます。
 マクロ実行中は、Onkeyメソッドは、実行されませんよね!!
 
 方法としては、
 
 1 APIのGetAsyncKeyStateを使う
 
 2 Ontimeでを使ってループさせる(この時は、Onkeyメソッドが使えました)
 
 3 キーをトリガーにする仕様を変更する
 (別の例えばボタンクリックで別マクロを実行させる仕様するとか
 これならば、実現可能です)
 
 私なら、3ですが・・・。
 
 2も試しましたが、ちょっと処理が遅い
 
 例は1の方法で
 
 例えば、ループ中では セルA1(アクティブシート)に1を足す
 という処理を行うとします。
 
 LEFTキーで足されたセルA1の値をクリアする
 RIGHTキーでループから抜ける
 
 という仕様で考えると・・・、
 
 新規ブックの標準モジュールに
 
 '==================================================================
 Option Explicit
 Private Declare Function GetAsyncKeyState Lib _
 "User32.dll" (ByVal vKey As Long) As Long
 '==================================================================
 Sub sample1()
 Do Until GetAsyncKeyState(39) <> 0
 If GetAsyncKeyState(37) <> 0 Then
 left_proc
 End If
 [a1].Value = [a1].Value + 1
 DoEvents
 Loop
 End Sub
 '==================================================================
 Sub left_proc()
 [a1].Value = 0
 End Sub
 
 sammple1を実行し、実行中に LEFTキーを押してみてください
 
 |  |