• ベストアンサー

マウスカーソルの移動

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

  • hase
  • お礼率100% (2/2)

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

  • ベストアンサー
回答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

  • ジョイパッドでマウス位置を指定するツールをご存知ないですか?

    よくベットに寝転んでブラウザゲームをジョイパッドでプレイしているのですが 毎回同じ座標をクリックする時にカーソル移動するのがとても面倒です。(ショップボタンや移動ボタン等) ボタンを押すことによって指定した座標へマウスカーソルを瞬時に移動してくれるツールをご存知無いでしょうか?

  • マウスカーソル+軌跡を遅らせて表示

    VisualBasic(6.0)で,Form上のマウスの軌跡(実線)を実際より時間的に遅れて表示させるプログラムを作成しています. 方法としては,Timer で数ステップ前の座標を記録し実線を表示+ マウスカーソルをロードしたImageをその位置に移動させる,という処理を行ってみたのですが, その方法ですと,カーソルが既に描かれた軌跡の上を通過すると,前の軌跡が消えてしまいます. そこでFormのAutoRedrawをTrueにすると,カーソルがちらついてしまいます. (TimerのIntervalは10msです.) このような現象を回避するための良い方法はありませんでしょうか? 宜しくお願いします.

  • カーソル移動が早いマウス

    比較的カーソルの動きが早いマウスがほしいのですがそういうのって商品に表示されてますか? 昨日買ってきたUSBのマウスはカーソル移動が遅くて使いがってが悪いのでまた違うマウスを買ってきたいと思ってるんですが。 こういったUSBのは遅いのでしょうか? また最近主流になってきた光で感知するマウスは使いやすいですか?

  • マウスの左ボタンを押したままのカーソル移動

    html初心者です。 マウスの左ボタンを押し下げたままのカーソル移動を行いたいと 思っています。 やりたいことを大まかに説明すると、ある大きな画像の上にいくつかの 小さな画像を貼ったイメージがあって、その上を、マウスの左ボタンを 押したままカーソルを移動させて、小さな画像の上にカーソルが来たら、 その画像の色を変えるというものです。 しかし現在は、ボタンを押したままマウスを動かすと、禁止マーク(?) が出てきて、小さな画像の上にカーソルが乗っても反応 してくれません。 ボタンを押したまま移動するという機能がどうしても必要で、マウス イベントなどを色々いじっていたのですが、上手くいきません。 何かヒントとなるようなものがあれば教えてください。 お願いします。

    • ベストアンサー
    • HTML
  • 無線マウスのカーソル移動ができない、

    無線マウスのM-DY13DBWHを購入しましたが、購入で1週間もしないうちに マウスのカーソル移動ができなくなりました。 裏側の青色LEDが転倒しません。 それ以外のボタンのクリック等については反応をしています。 何度かPCの変更、電池の交換を行いましたが、改善しません。 対処法について教えていただきたいです。 ※OKWAVEより補足:「エレコム株式会社の製品」についての質問です。

  • マウスのカーソルが思うように動かない!

    ブラウザの画面の最小化のボタンなど、クリックする場所に、マウスでカーソルを動かそうとすると、その近くまでカーソルが行くと、まるでカーソルがそこに行くのを嫌がるように、細かく震えだし、『イヤイヤ』し、マウスの動きと反対の動き(ほんの、2、~3ミリですが・・・)を、しだすときがあるのですがどうしてなんでしょうか?皆さん、このようなご経験ありませんか? 特に、ブラウザを、複数開いているときなど、画面が重いときによくこの症状が発生します。

  • マウスカーソルの変更

    ボタンをクリックしてタイマーを起動して1秒後にマウスカーソルを変更するソースを考えています。 ボタンを押した後はマウスを動かしません。 1秒後のタイマーになってから、マウスカーソルを変更する部分のソースを教えてください。

  • マウスカーソルの移動支援

    何かの確認ウィンドウなどが出てきたときに自動的に「OK」のボタンにマウスのカーソルが動くような、そんなことができるようになる設定orソフトはありませんか? 旧パソコンでは何故かできていたんですが、どういう設定だったか忘れてしまいました。 因みに現在のパソコンはXPです。

  • マウスポインタ’(カーソル)を2個

    一台のPCで、モニターもひとつの環境です。 マウスポインタ(カーソル)を2個作りたいと思いまして ネットで色々検索すると、あるにはありました。 フリーウェアですが・・・・。 しかしそのソフトは、一台のPCに2つのマウスを接続し それぞれのマウスが、それぞれの、マウスポインタ(カーソル)を 持たせることができて、それぞれが、独自に操作出来るという 内容のものでした。 今回、私が探しているのは、物理的にマウスは ひとつで マウスポインタ(カーソル)は2つ そして、そのマウスポインタ(カーソル)を、1台のマウスで 同時に操作できることができるものを探しています。 解りやすくいうと、左クリックをおすと、 二つのカーソルがおいてある場所を同時に 二つのカーソルが、クリックするというような 事を実現したいと思っています。 またマウスを動かすと、設定した間隔で、マウスカーソル2つが 等間隔で同時に移動するというものです。 こういった事を実現してくれるソフトなどは あるでしょうか? 今は、2台のマウスに、それぞれ1つづつの合計2つの マウスポインタを、それぞれが同時に動かせるところ までは出来ています。 以上 よろしくお願いします。

  • マウスカーソルを移動すると自動的にフォーカスか切り替わってしまいます

    マウスのカーソルを移動すると、自動的に(勝手に)アクティブのフォーカスが切り替わるようになってしまいました。 恐らくなにかしらの設定をしたのだと思いますが、どの項目から解除すればいいのか思い出せません…。 例:ウィンドウAとウィンドウBを開き、Aをアクティブ(バーが青)にした状態でマウスのカーソルをAからBに移動すると、自動的にウィンドウBがアクティブになり、ウィンドウAは前面にでたまま非アクティブ(バーがグレー)になります。 ご存じの方いらっしゃいましたら教えていただけないでしょうか。 よろしくお願いします。

専門家に質問してみよう