• ベストアンサー

マウスカーソルの移動

こんにちは。ちょっと今困っています。 コマンドボタンをクリックした時、Form上のある座標にマウスカーソルを自動的に移動させたいのですが、どうしたら良いでしょうか? 何かアドバイスをいただけたらうれしいのですが・・・・

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

API関数を使用します。 ----------------------------------- Module1(標準モジュール)に下記を貼り付け Option Explicit Declare Function SetCursorPos& Lib "user32" (ByVal x As Long, ByVal y As Long) ------------------------------------ command1(使用する場所)に下記を貼り付け Private Sub Command1_Click() Dim ret As Long Dim x As Long Dim y As Long 'x、y・・・座標(ピクセル単位) x = 30: y = 100 ret = SetCursorPos(x, y) End Sub --------------------------------------

hase
質問者

お礼

回答ありがとうございました。 早速試してみましたが、うまくいきそうです。 大変助かりました。ありがとうございました。

その他の回答 (1)

  • haporun
  • ベストアンサー率40% (230/562)
回答No.2

相対的な座標を指定したいならmouse_eventなんて古いAPI関数もありますよ。 ------------------------------ Public Const MOUSEEVENTF_ABSOLUTE = &H8000 Public Const MOUSEEVENTF_MOVE = &H1 Public Const MOUSEEVENTF_LEFTDOWN = &H2 Public Const MOUSEEVENTF_LEFTUP = &H4 Public Const MOUSEEVENTF_MIDDLEDOWN = &H20 Public Const MOUSEEVENTF_MIDDLEUP = &H40 Public Const MOUSEEVENTF_RIGHTUP = &H10 Public Const MOUSEEVENTF_RIGHTDOWN = &H8 Public 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) ------------------------------ パラメータ dwFlags マウスの移動およびマウスボタンの動作を指定します。次のフラグから、意味のある組み合わせを指定します。 値 意味 MOUSEEVENTF_ABSOLUTE: dx パラメータと dy パラメータの座標を、絶対的な座標として解釈させます。このフラグが指定されていない場合は、相対的な座標として解釈されます。 MOUSEEVENTF_MOVE: マウスが動かされたことを示します。 MOUSEEVENTF_LEFTDOWN: 左ボタンが押された状態になったことを示します。 MOUSEEVENTF_LEFTUP: 左ボタンが離された状態になったことを示します。 MOUSEEVENTF_RIGHTDOWN: 右ボタンが押された状態になったことを示します。 MOUSEEVENTF_RIGHTUP: 右ボタンが離された状態になったことを示します。 MOUSEEVENTF_MIDDLEDOWN: 中央ボタンが押された状態になったことを示します。 MOUSEEVENTF_MIDDLEUP: 中央ボタンが離された状態になったことを示します。 MOUSEEVENTF_WHEEL: Windows NT のみ : マウスがホイールを持つ場合、そのホイールが動かされていることを示します。移動の量は、dwData パラメータで指定します。 マウスのボタンの状態を示すフラグは、ボタンの状態の変化を示すものであり、その状態が続いていることを示すものではありません。たとえば、左ボタンが押されてそのまま押し続けられている場合、左ボタンが押された時点で MOUSEEVENTF_LEFTDOWN がセットされるだけで、それ以降のマウスの移動時にはセットされません。同様に、MOUSEEVENTF_LEFTUP がセットされるのは、ボタンが離されたときだけです。 dx dwFlags パラメータに MOUSEEVENTF_ABSOLUTE フラグをセットした場合は、マウスの x 座標を絶対的な座標で指定します。そうでない場合は、マウスの x 座標を現在位置からの相対的な座標で指定します。 dy dwFlags パラメータに MOUSEEVENTF_ABSOLUTE フラグをセットした場合は、マウスの y 座標を絶対的な座標で指定します。そうでない場合は、マウスの y 座標を現在位置からの相対的な座標で指定します。 dwData dwFlags パラメータに MOUSEEVENTF_WHEEL フラグをセットした場合は、ホイールの移動量を指定します。正の値はホイールが前方 (ユーザーから離れた方向) に、負の値はホイールが後方 (ユーザーの方向) に回されていることを示します。1 回のホイールクリックは、WHEEL_DELTA として定義されています。WHEEL_DELTA の値は 120 です。 dwFlags パラメータに MOUSEEVENTF_WEEL フラグをセットしていない場合は、dwData パラメータに 0 を指定してください。 dwExtraInfo マウスイベントに関連付けられた 32 ビットの追加情報を指定します。マウスメッセージの処理ルーチンで、GetMessageExtraInfo 関数を呼び出すと、この値が取得できます。 戻り値 戻り値はありません。 ------------------------------ MSDNライブラリをそのままコピーしてしまったので、長くてすみません。

hase
質問者

お礼

いろいろありがとうございます。 助かります。 参考にさせていただきます。

関連するQ&A