如何在Visual Basic中使用Excel中的应用程序

我想在我的VBA的Excelmacros中使用键input来预制forms的行动。 我一直在search互联网了一段时间,发现“应用程序的关键”可能是有用的。 但我不明白如何使用它。

在这种情况下,我的目标是使用箭头键移动活动单元格。 (这已经超越了)。 但是需要做一些额外的操作:例如,Firts需要减速一定数量的ms,activecell需要改变颜色“ActiveCell.Color.Index = RGB(255,0,0)”。

这将是easyer使用“A / S / W / D”键导航我会很高兴两个。

目标:某种蛇游戏

问题:如何使用键盘input?

在我的代码到目前为止,(根本不工作…:P)使用以下网站获取有关应用程序的信息http://www.rondebruin.nl/win/s4/win012.htm

 Private Sub Workbook_Activate() Application.OnKey "{RIGHT}", "Sub sRight" Application.OnKey "{LEFT}", "Sub sLeft" Application.OnKey "{Down}", "Sub sDown" Application.OnKey "{UP}", "Sub sUp" End Sub Sub sRight() ActiveCell.Offset(0, 1).Select ActiveCell.Color.Index = RGB(255, 0, 0) End Sub Sub sLeft() ActiveCell.Offset(0, -1).Select ActiveCell.Color.Index = RGB(255, 0, 0) End Sub Sub sDown() ActiveCell.Offset(1, 0).Select ActiveCell.Color.Index = RGB(255, 0, 0) End Sub Sub sUp() ActiveCell.Offset(-1, 0).Select ActiveCell.Color.Index = RGB(255, 0, 0) End Sub Private Sub Workbook_Deactivate() Application.OnKey "{RIGHT}" Application.OnKey "{LEFT}" Application.OnKey "{Down}" Application.OnKey "{UP}" End Sub 

你需要在macros的Application.OnKey "[Button]", "[sub to start]"命令通过按一个键启动macros,但要记住:

macros需要在一个Module或者你需要添加如下path:

 Sub Test() Debug.Print "OK" End Sub 'if test is in Module Application.OnKey "{RIGHT}", "Test"` 'if test is in sheet/userform Application.OnKey "{RIGHT}", "Sheet1.Test"` Application.OnKey "{RIGHT}", "UserForm1.Test"` 

每次按下“向右箭头button”时都会执行“testing”。 要停用它,只需运行没有目标的Application.OnKey "{RIGHT}"

如果工作簿被closures或者类似的话, Application.OnKey不会被设置为无。 因此,如果在closures/切换/不pipe工作簿的情况下没有设置自动closures,您可能会遇到VBA错误。