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

A 回答 (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ライブラリをそのままコピーしてしまったので、長くてすみません。
    • good
    • 0
この回答へのお礼

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

お礼日時:2000/12/23 16:38

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

--------------------------------------
    • good
    • 0
この回答へのお礼

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

お礼日時:2000/12/19 20:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報

カテゴリ