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
注意点
- こちらのコードだけでは動作しません。
下記の読み込み待ちのパーツ化したコードが必要です。
VBAでIE操作「ブラウザの読込待ち」処理をパーツ化する【エクセルマクロ】 - 詳しく理解しようと思うと、JavaScriptの詳細をお調べください。
- JavaScript「scrollTo」で座標を移動させます。(絶対値で移動)
- JavaScript「scrollBy」で座標を移動させます。(相対値で移動)



コメント