私は{DOWN}
を押すまで基本的に以下のアクションをループしたいが、プライベートサブは100%正しいとは思われないので、コードは永遠にループする。Onkey {RIGHT}
Public pressdown As Boolean
Sub DemoOnKey()
Application.OnKey "{RIGHT}", "moveright"
Application.OnKey "{LEFT}", "moveleft"
Application.OnKey "{DOWN}", "movedown"
Application.OnKey "{UP}", "moveup"
End Sub
Sub moveright()
Do Until pressdown
Selection.Copy Destination:=Selection.Offset(0, 1)
Selection.Offset(0, 1).Select
Selection.Offset(0, -1).ClearContents
DoEvents
Loop
If pressdown = True Then
Call movedown 'Calls similar macro to moveright, but to movedown, hehe
End If
End Sub
Private Sub Form_KeyPress(Key As Integer)
Const down = "{DOWN}"
If Application.OnKey = down Then pressdown = True
End Sub
グローバル変数としてどこかで宣言されていますか? – Comintern
{DOWN}が押されたときに押された状態がtrueに設定されています。{RIGHT} – Rdster
@Rdsterではありません。これはタイプミスです。 @Cominternあなたは 'Public Pressdown As Range'のような意味ですか? 私は今それを行い、マクロは 'Do Until pressdown'でエラーになりました – Serveira