VBA開発

VBAでIE操作「IEをJavaScriptで画面スクロールさせる」

IEを画面スクロールしたい

Excel VBAマクロでIEを自動制御する際、IEの画面をスクロールさせることも可能です。
Twitter等の画面下部に移動する事で、ページを読み込むようなサイトでは効果的で、
たくさんのデータを一度に取得が可能です。(現時点ではTwitterではIEは非対応で使えません)

IEの画面を自動スクロールするサンプルコード

'■JavaScriptで画面スクロールするサンプル
Public Sub sample_Javascript_scroll()
    Dim i As Long
    
    Dim objIE  As InternetExplorer

    '■IEを起動
    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Visible = True
 
    '■指定したURLに飛び、Webサイトの表示を待つ
    objIE.navigate "https://vba-create.jp/vba-method-pastespecial"
    Call Call_IE_WaitTime

    '■InternetExplorerをJavaScriptで自動スクロールさせる(座標x0,y100に移動)絶対値で移動
    objIE.navigate "JavaScript:" & "scrollTo(0, 100)"
    
    '■InternetExplorerをJavaScriptで自動スクロールさせる(座標x0,y200に移動)相対値で移動
    objIE.navigate "JavaScript:" & "scrollBy(0, 100)"
    
    '■InternetExplorerをJavaScriptで自動スクロールさせる(座標x0,y最下層に移動)
    objIE.navigate "JavaScript:" & "scrollTo(0, " & objIE.document.body.ScrollHeight & ")"

End Sub

注意点

 

その他

Internet Explorerを使用して、Webスクレイピングは敷居が高い風に捉えられますが、
上記のように、パーツ化して組み合わせ処理するだけです。

Web上のデータを触りたい要望は会社様でも個人様でも多いと思います。
VBA IE操作を覚えて効率化しませんか?
作成が大変であれば弊社で代行開発も可能です。お気軽にお問い合わせください。

 

コメント

タイトルとURLをコピーしました