VBA

【VBAでIE操作】起動済み画面のHTMLを取得する(Webスクレイピング)

ねぇもりさん、VBAでスクレイピングをしたいんだけど、目的の画面にたどりつくまでが大変なんだよね・・・
もり
もり
それなら、先に画面を開いておけばいいんだよ!
起動済みの画面のHTMLを取得する方法を紹介するね

VBAでスクレイピングをしたい!と思って、[VBA IE操作]というキーワードで検索して出てくる記事は、こんな流れのが多いですよね。

  1. IEを起動
  2. 目的のURLにアクセス
  3. IDとパスワードを入力してログイン
  4. HTMLを読み込む
  5. スクレイピング開始

HTMLを読み込んでスクレイピングを開始するまでが大変・・・そんなときは、先に目的の画面を開いておき、そのHTMLを取得してしまいましょう!

こちらの三流君を参考にさせていただきました。

TypeNameとShell.Applicationを使い起動済みのIEを探す

起動済みの画面のHTMLを取得する

※この記事はVBAでIE操作をしたことがある人向けに書いているので、VBA全般の解説は省略しています。

こちらのWebサイトを使用して解説していきます。

コミュニティ「ノンプログラマーのためのスキルアップ研究会」についてのお知らせ

コード

参照設定で下記の2つを使用します。

  • Microsoft HTML Object Library
  • Microsoft Internet Controls

マクロの使い方

①titleの設定
上記コードの変数targetTitleに、対象画面のtitleの文字列を設定します。

下記のいずれかの方法で、対象画面のHTMLを確認します。

  • Ctrl+U
  • マウス右クリック→ソースの表示

titleタグを探しましょう!(先頭の方にあるはず)
<title>~</title>

②操作対象の画面をIEで起動しておく

Internet explorerで対象画面にアクセスしておきます
ログインが必要なシステムの場合は、ログイン処理もしておきます

gethtml2

③マクロを実行

これで、対象画面のHTMLが変数htmlDocに格納できたので、あとは自由にVBAで操作しましょう!

2020年・小学校でプログラミング教育が必修化

2020年、いよいよ小学校でプログラミング授業が始まります。続く2021年からは「中学校」で開始。2022年からは「高校」でも導入されます。

あと何年かしたら、あたりまえにプログラミングを使いこなす新入社員が入ってくるかもしれません。2020年、大人も一緒に学んでみませんか?

1週間のオンライン無料体験
いつでもどこでも今すぐ視聴OK