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」で座標を移動させます。(相対値で移動)
コメント