俺、最近VBなんか使ってねえから覚えてらんねーよメモ。
Option Explicit

Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Public Declare Function AttachThreadInput Lib "user32" (ByVal idAttach As Long, ByVal idAttachTo As Long, ByVal fAttach As Long) As Long
Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function GetForegroundWindow Lib "user32" () As Long

'VisualBasicで自分のウィンドウを無理矢理前面にもってくるのは
'SetForgroundWindow使えばいいとおもったらWinows2000じゃ駄目なんですって。
'そんじゃどうすんのよキィィィィィィィ
'とりあえずなんかうまくいったつーか。
'でもなんかアレだね。よくないね。間違ってるね。
Public Sub hoge()
    Dim tid As Long
    Dim fid As Long
    fid = GetWindowThreadProcessId(GetForegroundWindow(), 0)
    tid = GetWindowThreadProcessId(Form1.hwnd, 0)
    AttachThreadInput tid, fid, -1
    SetForegroundWindow Form1.hwnd
    AttachThreadInput tid, fid, 0
End Sub