It's because VB is intercepting those key presses and it is moving the "control focus" to different objects on the form.
If you want to see your command button move, then follow these steps:
1. Set Form1.KeyPreview = True
2. Create a PictureBox on the form along with your Command button.
3. Start the program.
4. Click on the picturebox to give it the focus.
What happens in this example is that the picture box won't switch the focus to another control when using the arrow keys.
Also, here is a slight correction for the code you're using
With Command1
Select Case KeyCode
Case vbKeyDown
.Top = .Top + Screen.TwipsPerPixelY
Case vbKeyUp
.Top = .Top - Screen.TwipsPerPixelY
Case vbKeyLeft
.Left = .Left - Screen.TwipsPerPixelX
Case vbKeyRight
.Left = .Left + Screen.TwipsPerPixelX
End Select
End With