プロが教える店舗&オフィスのセキュリティ対策術

◆知りたいこと
IEのウインドウ全体のスクロールではなく、小ウインドウのスクロールをする方法


◆状況
例としてTwitterの画面を掲載します。
※IEで開くとこの画面で、ほかのブラウザとは表示方法が異なるようです。
※今はTwitterを例にしていますが、さまざまなWebページで同様の例があります。

ウィンドウ全体(青部分)のスクロールのコードは以下でやっています。
これについては特に問題がありません。

Diim objIE As InternetExplorer
objIE.navigate "JavaScript:scrollTo(0," & objIE.document.body.ScrollHeight & ")"

一方、小ウィンドウ(赤部分)のスクロールのやり方がわかりません。
上記コードのobjIEを小ウィンドウの部分のオブジェクトに置き換えたりもしましたが「.navigate」のメソッドがなかったりなど、できませんでした。

やり方をご存じの方、教えていただけませんか?

※類似のケースで、Framesで区切られた場合のスクロールもできません。そのやり方も合わせて教えていただければ幸いです。


◆環境
Windows 10 Home
Intel Core i5-5200U @ 2.20GHz
RAM 8.00GB
64ビットオペレーティングシステム、x64ベースプロセッサ
Internet Explorer 11
Microsoft 365で定期的に更新されています。

「VBA IEの操作 スクロールバーの操作」の質問画像

A 回答 (2件)

こんにちは



今、環境がないので確認はできませんが、わざわざ
>objIE.navigate "JavaScript:~~
のような方法をとらなくても、objIE.Document でDOMのdocumentが取得できるはずですので、直接DOM操作を行う方が簡単かと思います。

>objIEを小ウィンドウの部分のオブジェクトに置き換えたりもしましたが~
実際のページのDOM構造が不明ですが、表示要素のスクロールを指定することで制御が可能なはずです。
https://developer.mozilla.org/ja/docs/Web/API/El …
    • good
    • 1
この回答へのお礼

ありがとうございます!
アドバイスの通り簡単にできました。
大変助かりましたm(__)m

お礼日時:2020/05/17 00:57

思いつく一番単純な方法だと、


WM_HSCROLL
のメッセージをSendMessageで送ってみるとか。


試してないですが、VBAでテキストボックスをスクロースされるサンプルらしいです。

Happy Codings - Visual Basic > Forms Code Examples - Controlling the scrolling of a textbox
https://visualbasic.happycodings.com/forms/code1 …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございますm(__)m
ちょっと知識不足で理解しきれていないのですが勉強したいと思います。

お礼日時:2020/05/17 00:58

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