Excel VBA でIEを呼び出す

やりたい事

  • Excel の VBA でIEを呼び出しウェブサイトを表示させ、HTMLコードをセルA1にペーストする。

下準備

エクセルを起動 → [alt] + [F11] → [ツール] → [参照設定] → 下記の二つにチェックを入れる → [OK]


[Microsoft HTML Object Library]
[Microsoft Internet Controls]
にチェックを入れる

[ファイル] → [名前を付けて保存] → [Excel マクロ有効ブック (*.xlsm)] を選択 → 任意のファイル名を入力 → [保存]

VBA スクリプト

IE で www.yahoo.co.jp を表示し、HTMLソースをA1にペーストするサンプル。マクロの記録でできた Module の上に下記ソースを上書きする。

下記ソースをコピー → [開発] → [マクロの記録] → [OK] → [記録終了] → [Visual Basic] → [標準モジュール][Module1] → コードが表示されている部分をクリック → [ctrl] + [a] → [ctrl] + [v]

Sub web()

    Dim IE As InternetExplorer
    
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    
    IE.Navigate "https://www.yahoo.co.jp"
    Call BusyWait(IE)
    
    wks = IE.document.body.innerHTML
    Cells(1, 1) = wks
    
End Sub


Sub BusyWait(IE As Object)
    Do While IE.Busy = True Or IE.readyState < READYSTATE_COMPLETE
        DoEvents
    Loop
End Sub

実行方法

[開発] → [マクロ] → [web] → [実行(R)]

メモ

  • xlsm 形式で保存をしないと、次に読み込んだ時にマクロが消える。
  • セルのサイズ制限により、内容が途切れる場合がある。