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