VBA開発

VBAでIE操作「IEの起動をする」【エクセルマクロ】

VBAでIE操作(InternetExplorer操作)

ExcelVBAマクロでIEを操作し、Webスクレイピング、Webクローリングをする事が可能です。
マクロがインターネットエクスプローラーを自動で操作し、
WEBのデータ取得・登録などの、各種WEB操作します。

具体的には以下が可能です。
・IEから取得したデータをシートに書込。
・エクセルデータを、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操作を覚えて効率化しませんか?
作成が大変であれば弊社で代行開発も可能です。お気軽にお問い合わせください。

 

コメント

タイトルとURLをコピーしました