Welcome to the wonderful world of getting stuff to move on its own.
First, I hope you've settled down a bit with your product first, because we are going pretty quickly IMHO (In my humble opinion :) ). Also, I am using a Timer, but you can do this with a regular game loop. Also, a Shape will work fine as the Box control.
Moving in a Straight Line:
Of course, this should be easy.
Const V As Integer = ?
Private Sub Tix_Timer()
Box.Left = Box.Left + V
End Sub
What goes on is that you have a Timer called Tix that moves the object (which is quite obvious). The Tix.Interval specifies how often to move the Box, while the V specifies how far to move the box. It's a really simple concept, but it's not that simple. If you say that you want the block to move "fast", there are two fasts: far-fast with a high V, or tick-fast with a low Tix.Interval.
Moving back and forth:
Based on the previous:
Public V As Integer
Const LB As Integer = ?
Const RB As Integer = ?
Private Sub Tix_Timer()
Box.Left = Box.Left + V
If Box.Left > LB Or Box.Left < RB Then
V = -V
End If
End Sub
This is the same concept as before except with bounds that actually change the direction of travel (which is the V).
Movement by function:
This is the basis of freestyle movement for controls.
Public Function FMove(ByVal T As Integer)
As Integer
FMove = T^2
End Function
Private Sub Tix_Timer()
Tm = Tm + 1
Box.Left = FMove(Tm)
End Sub