Declare Function OffsetRect Lib "user32" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long
OffsetRect меняет позицию прямоугольника без изменения его размера. Если значение для перемещения отрицательно, прямоугольник перемещается влево или вверх(в зависимости от направления); положительные значения перемещают его вправо или вниз
' Сдвигаем Form1 на 50 пикселов вправо ' и 20 пикселов вверх, используя его прямоугольник Dim winrect As RECT ' прямоугольник окна Dim retval As Long ' возвращаемое значение ' Получаем прямоугольник Form1 retval = GetWindowRect(Form1.hWnd, winrect) ' Сдвигаем прямоугольник вправо и вверх retval = OffsetRect(winrect, 50, -20) ' Теперь заменим окно на экране, ' чтобы соответствовать его новому прямоугольнику retval = SetWindowPos(Form1.hWnd, 0, winrect.Left, winrect.Top, winrect.Right, winrect.Bottom, 0)