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操作を覚えて効率化しませんか?
作成が大変であれば弊社で代行開発も可能です。お気軽にお問い合わせください。



コメント