[[20190704154426]] 『マウスホイールを回転させたい』(ハリー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マウスホイールを回転させたい』(ハリー)

エクセルから社内で使用しているアプリケーションを操作する
マクロを組んでいます。

作業上、一旦最大限まで拡大(MAXくるくる50回)し、
その後、手前にくるくる10回をおこなって画面の縮尺を
保ちたいと考えています。

sendkeyのようにキー操作できれば簡単だったんですが、
ウィンドウ内の画面の拡大はマウスホイールを奥に、
縮小は手前にくるくるすることでしかできないです。

ウィンドウハンドルは取得できています。

対象のウィンドウ内で
マウスホイールをマクロから動かしたいと思うのですが
やり方はあるでしょうか?

< 使用 Excel:Office365、使用 OS:Windows10 >


マウス内にモーターなんて入っていないから、ホイールは手動でしか回りませんよ?

シートのズーム率を変えるなら、右下にある「100%」とか書いてあるところをクリックすると、数値で倍率指定できますが、これでは駄目ですか? また、マクロの記録を行ってからこの操作をすると、マクロでどのプロパティを操作するのか調べる事ができるので、任意の倍率にするマクロも簡単に作れますよ。(ショートカットキーでも設定しておけば一発で変わります)
(???) 2019/07/04(木) 16:01


あ、他のアプリのズーム率なんですね。駄目か…。

そのアプリには、ズーム率を数値変更できる機能は付いていませんか? ショートカットキーが割り振られているならば、SendKeysで変わりそう。
(???) 2019/07/04(木) 16:06


???様
事前に調査はしたんですがこのアプリはマウスホイールからしか
縮尺は変えられませんでした。
ショートカットや数値変更できるメニューやコマンドもありませんでした…
(ハリー) 2019/07/04(木) 16:16

ホイールのみって、ホイールなしマウスをディスってますね…。 アプリ開発メーカーに、ホイール無い場合はどうすれば良いのか聞いてみても良いかも。

Windowsの原理的には、ホイールを回すと WM_MOUSEWHEEL のメッセージが飛ぶので、APIを使ってこれと同じメッセージを飛ばせば、不可能ではないと思います。 が、いろいろ調べるのが大変なので、ちょっとコードは書けないです。 すいません。
(???) 2019/07/04(木) 16:31


このアプリケーション、自社開発なんです・・。
開発部署に問い合わせをしてみましたが、実装するにしても費用対効果が出ないとのことで
作業部署の私らがマクロいじってやってみよう、となりました。
(ハリー) 2019/07/04(木) 16:52

mouse_event MOUSEEVENTF_WHEEL
を使用して無事に動きました。
???様ありがとうございました!!
(ハリー) 2019/07/04(木) 17:35

自前のアプリでしたか。 ヒントになって良かったです。 実現したのは、こんな感じでしょうかね。
 Private Declare Sub mouse_event Lib "user32" ( _
    ByVal dwFlags As Long, _
    Optional ByVal dx As Long, _
    Optional ByVal dy As Long, _
    Optional ByVal dwData As Long, _
    Optional ByVal dwExtraInfo As Long)
 Const MOUSEEVENTF_WHEEL = &H800
 Const WHEEL_DELTA = 120

    Call mouse_event(MOUSEEVENTF_WHEEL, 0, 0, WHEEL_DELTA, 0)
    Call mouse_event(MOUSEEVENTF_WHEEL, 0, 0, -WHEEL_DELTA, 0)
(???) 2019/07/04(木) 18:02

API宣言や定数宣言はご提示いただいた通りです!
実際には
 For n = 1 To 50
    mouse_event MOUSEEVENTF_WHEEL, 0, 0, 1, 0
    Sleep 5
 Next n

のようにしています。

ホイールクリックは使用しませんでしたのでWHEEL_DELTAは使用しませんでした。
アプリ側の問題なのか最初はうまく動作しませんでしたが
sleepで少し時間稼ぎしながら1つずつ繰り返すとうまくいきました。

???様ほんとにありがとうございました!!
(ハリー) 2019/07/05(金) 08:32


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.