VBAでIE操作(InternetExplorer操作)
ExcelVBAマクロでIEを操作し、Webスクレイピング、Webクローリングをする事が可能です。
マクロがインターネットエクスプローラーを自動で操作し、
WEBのデータ取得・登録などの、各種WEB操作します。
以下のパーツをコピペでOK
今回はIE操作の基本処理です。
まずは、IEを立ち上げるコードです。コピペですぐ使えます。
Public Sub sample() Dim objIE As Object Set objIE = New InternetExplorerMedium '■Internet Explorerの画面を表示する(可視化する) objIE.Visible = True '■目的のサイトに移動する objIE.navigate ("https://vba-create.jp/") '■もちろんURLを変数化してもOK Dim Site as String:Site = "https://vba-create.jp/" objIE.navigate (Site) End Sub
※事前にこちらの参照設定が必要です。
※ページ読み込み後は読み込み待ち処理が必要です。
コードの意味
今回はコード内のコメントを見てもらえば、理解はいただける事でしょう。
一つ豆知識として覚えておいて頂きたい事があります。
VBAでInternet Explorerを操作する際はパソコン環境やサイトによって、エラーが出る事があります。
下記のようにエラー原因を特定するのに苦労するケースが存在します。
VBAでIE操作「エラーに負けない」【エクセルマクロ】
その為、ネットや教習本に載っているコードを実行しても、
正常に動作しないケースがあります。そちらが下記のVisible問題です。
objIE.Visible = Trueではエラーが出る?
VisibleをTrueにする事で、objIEが可視化されます。
可視化されることで、VBAによってIEが自動で処理されている動きを確認できます。
しかしながら、Trueになっていることでどういうわけか、エラーが出るサイトがあります。
上記の原因不明のエラーが出た場合は、VisibleをFalseにすることで回避が出来る場合があります。
objIE.Visible = False
コードが正しいことを確認できれば、エラーが出そうな場所を一度Visible=Falseにしてクリック動作などをしてみてください。
その他
Internet Explorerを使用して、Webスクレイピングは敷居が高い風に捉えられますが、
上記のように、パーツ化して組み合わせ処理するだけです。
Web上のデータを触りたい要望は会社様でも個人様でも多いと思います。
VBA IE操作を覚えて効率化しませんか?
作成が大変であれば弊社で代行開発も可能です。お気軽にお問い合わせください。
コメント