VBAでIE操作(InternetExplorer操作)
ExcelVBAマクロでIEを操作し、Webスクレイピング、Webクローリングをする事が可能です。
マクロがインターネットエクスプローラーを自動で操作し、
WEBのデータ取得・登録などの、各種WEB操作します。
以下のパーツをコピペでOK
今回はInternet Explorerを単純に開くだけではなく、新しいタブで開く場合の処理です。
Public Sub sample() Dim objIE As Object Set objIE = New InternetExplorer '■Internet Explorerの画面を表示する(可視化する) objIE.Visible = True '■目的のサイトに移動する場合はこちら objIE.navigate ("https://vba-create.jp/") '■新しいタブで開く場合はこちら objIE.navigate2 ("https://vba-create.jp/"),2048 End Sub
※事前にこちらの参照設定が必要です。
※ページ読み込み後は読み込み待ち処理が必要です。
コードの意味
今回はコード内のコメントを見てもらえば、理解はいただける事でしょう。
- 引数が 2048 ですが、16進表記(&H800) でも動作は同一です。
- 引数を省略すると .Navigate と同じ動作(同一タブでページ移動)です。
- 新しいタブを操作したい場合はIEを掴みなおしましょう。
Public Sub sample() Dim objIE As Object: Set objIE = New InternetExplorer Dim objShell As Object: Set objShell = CreateObject("Shell.Application") '■Internet Explorerの画面を表示する(可視化する) objIE.Visible = True '■目的のサイトに移動する場合はこちら objIE.navigate ("https://www.yahoo.co.jp/") '■新しいタブで開く場合はこちら objIE.navigate2 ("https://vba-create.jp/"), 2048 '■LocationURLで今開いているIEのタブをループする。必要な時URLの場合Set objIE = win とする。 Dim win As Object For Each win In objShell.Windows Debug.Print win.LocationURL 'https://www.yahoo.co.jp/ 'https://vba-create.jp/ Set objIE = win Next End Sub
関連記事
その他
Internet Explorerを使用して、Webスクレイピングは敷居が高い風に捉えられますが、
上記のように、パーツ化して組み合わせ処理するだけです。
Web上のデータを触りたい要望は会社様でも個人様でも多いと思います。
VBA IE操作を覚えて効率化しませんか?
作成が大変であれば弊社で代行開発も可能です。お気軽にお問い合わせください。
コメント