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年~ 小学校で開始
  • 2021年~ 中学校で開始
  • 2022年~ 高等学校で開始
  • 2024年~ 高校受験科目に新設

学校での必修化に向けて、すでに子ども向けプログラミングスクールが多数開校されています。

あと数年もすれば、あたりまえにプログラミングができる新入社員がやってくる時代になります。

プログラミングってなに?どんなもの?まずは無料体験から試してみませんか?

 

1週間の無料体験あり!
オンラインスクール実績No.1!