Internet Explorer自動操作

VBAでIE操作「新しいタブで開く」【Navigate2メソッド】

VBAでIE操作(InternetExplorer操作)

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

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

 

コメント

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