I am a complete noob to the programming scene but I know another way of moving a character...private sub form_keydown(keycode as integer, shift as integer)
select case keycode
case vbkeyup
shape.top = shape.top - (desired speed of the character)
case vbkeyleft
shape.left = shape.left - (desired speed of the character)
end select
This I find is easier because there is less typing ivolved and therefore less code to serach through for bugs and stuff, hope it helps.