mouse_event

APIの動き
マウスの移動、マウスのクリックを指定します
Windows全体を対象としています
アプリケーションでマウスイベントを疑似的に発生させたいとにき使います。

次のAPI定義をフォームにコピー&ペーストして下さい
Private Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
'ここから下は使う分だけ指定して下さい
Private Const MOUSEEVENTF_ABSOLUTE = &H8000
Private Const MOUSEEVENTF_MOVE = &H1
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_RIGHTDOWN = &H8
Private Const MOUSEEVENTF_RIGHTUP = &H10
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
Private Const MOUSEEVENTF_MIDDLEUP = &H40

使い方とパラメータの説明
■使い方
mouse_event dwFlags,dx,dy,dwData,dwExtraInfo

パラメータ
dwFlags
マウスの移動とマウスボタンの動作を指定します。
次のフラグから、意味のある組み合わせを指定します。(組み合わせは + で)
MOUSEEVENTF_ABSOLUTE dxパラメータと dyパラメータの座標を、絶対的な座標として解釈させます。このフラグが指定されていない場合は、相対的な座標として解釈されます。
MOUSEEVENTF_MOVE マウスが動かされたことを示します。
MOUSEEVENTF_LEFTDOWN 左ボタンが押された状態になったことを示します。
MOUSEEVENTF_LEFTUP 左ボタンが離された状態になったことを示します。
MOUSEEVENTF_RIGHTDOWN 右ボタンが押された状態になったことを示します。
MOUSEEVENTF_RIGHTUP 右ボタンが離された状態になったことを示します。
MOUSEEVENTF_MIDDLEDOWN 中央ボタンが押された状態になったことを示します。
MOUSEEVENTF_MIDDLEUP 中央ボタンが離された状態になったことを示します。
MOUSEEVENTF_WHEEL Windows NT のみ : マウスがホイールを持つ場合、そのホイールが動かされていることを示します。移動の量は、dwDataパラメータで指定します。

dx dy
dwFlagsパラメータに MOUSEEVENTF_ABSOLUTE フラグをセットした場合は、マウスの座標を絶対的な座標で指定します。そうでない場合は、マウスの座標を現在位置からの相対的な座標で指定します。

dwData

dwFlagsパラメータに MOUSEEVENTF_WHEEL フラグをセットした場合は、ホイールの移動量を指定します。正の値はホイールが前方 (ユーザーから離れた方向) に、負の値はホイールが後方 (ユーザーの方向) に回されていることを示します。1 回のホイールクリックは、WHEEL_DELTA として定義されています。WHEEL_DELTA の値は 120 です。

dwExtraInfo
マウスイベントに関連付けられた 32 ビットの追加情報を指定します。
*理解不能*

追加情報

MOUSEEVENTF_ABSOLUTE を指定した場合、dxパラメータと dyパラメータは 0 から 65535 までの値をとります。これらの座標は、イベントプロシージャによって、画面上の座標に変換されます。 座標 (0,0) は画面の左上隅に、(65535,65535) は画面の右下隅に変換されます。

MOUSEEVENTF_ABSOLUTE を指定しなかった場合、dxパラメータと dyパラメータの値は、直前のマウス位置からの相対的な移動量として解釈されます。正の値は右 (または下) への移動を示し、負の値は左 (または上) への移動を示します。単位はピクセルです。

使用例(コマンドボタンを追加)
'マウスの左クリックをしますのでご注意下さい
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
'ここから下は使う分だけ指定して下さい
Private Const MOUSEEVENTF_ABSOLUTE = &H8000
Private Const MOUSEEVENTF_MOVE = &H1
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_RIGHTDOWN = &H8
Private Const MOUSEEVENTF_RIGHTUP = &H10
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
Private Const MOUSEEVENTF_MIDDLEUP = &H40

Private Sub Command1_Click()
mouse_event MOUSEEVENTF_MOVE, 200, 100, 0, 0
'相対的にXに200、Yに100動きます
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
'マウスの左を押した状態にします
mouse_event MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0
'マウスの左を離した状態にします
'連続して、『押す離す押す離す』でWクリックになります
End Sub

コメント
マウスの移動はAPIのSetCursorPosを使うのが一般的です
誤作動を起すと、変なところをクリックし始めるのでお気をつけ下さい