dポイントプレゼントキャンペーン実施中!

こんばんは。
まず以下のコードをご覧ください。

Public Declare Sub mouse_event Lib "user32.dll" _
(ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, _
ByVal dwData As Long, ByVal dwExtraInfo As Long)

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

Sub test()
Call mouse_event(MOUSEEVENTF_ABSOLUTE, 10, 65500, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
End Sub

ExcelでSub test()を実行し、マウスで画面の左下の「スタート」を左クリックしたのと同じ結果が出ればいいのですが、うまくいきません。
フォームボタンで実行したらしばらくポインターが点滅していました。
クリックはされているようですが、移動ができてないようです。
このAPI関数というものが、このカテゴリーでよいのかも分からない私ですが、どうかご回答よろしくお願いします。

A 回答 (1件)

マウスを移動した後にクリックイベントを起こせばいいです。


(Windows XPです。)
次のように少し変更してください。
Call mouse_event(MOUSEEVENTF_ABSOLUTE Or MOUSEEVENTF_MOVE, 0, 65535, 0, 0)
    • good
    • 0
この回答へのお礼

ありがとうございます。
また壁にぶつかったら質問させていただきます。

お礼日時:2010/03/07 08:11

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