【エクセルVBAでIE操作】HTMLタグと要素そしてドキュメントの取得

★気に入ったらシェアをお願いします!


HTML

photo credit: HTML Tag via photopin (license)

みなさん、こんにちは!
たくさん勉強すべきことがあってひーひー言ってますタカハシ(@ntakahashi0505)です。

初心者向けエクセルVBAでIEを操作するシリーズの第2回目です。

VBAやHTMLの知識があまりなくとも、この通りやればなんとなくはできるように書き進めていきたいと思います。

さて、前回はこちらの記事で、VBAからIEを操作するためのセッティングと実際にIEでページを開いてみるところまで進めました。

【エクセルVBAでIE操作】10分で終わるセッティングとWEBページの閲覧確認
エクセルVBAでInternetExplorerを操作するシリーズの導入編です。今回はIEを操作するときに最初にすべきセッティングと実際にWEBページを開く動作確認までをやってみたいと思います。

今回は次のステップとして、HTMLについて簡単に説明をしつつ開いたページのHTMLドキュメントを取得する方法についてお伝えします。

本格的にWEBスクレイピングするまでもう少しだけかかりますが、お付き合いくださいませ。

どうぞよろしくお願いします!

前回のおさらい

前回作ったプログラムはこちらでした。

IEオブジェクト変数を用意して、新規IEオブジェクトをセットして、IEを表示して、指定URLのページを開くという内容でした。

今回はせっかく開いたページからHTMLドキュメントを取得しますが、まずこのHTMLとは何かについて簡単に説明をしたいと思います。

HTMLとは何かについて簡単に説明します

WEBスクレイピングをするのであれば、そのWEBページがどのような作りになっているかというのを調べる必要があるのですが、その際にWEBページを作るための言語であるHTMLについての若干の知識が必要になります。

HTMLとは、Webページを記述するためのマークアップ言語。文書の論理構造や表示の仕方などを記述することができる。
(引用:IT用語辞典

具体的には例えばテキストエディタで

と記述して保存したファイルをブラウザにドラッグすると

HTML表示サンプル

と表示されます。

HTMLタグと要素(エレメント)

ご覧の通りHTMLは「<タグ>何か書く」といったようにテキストをタグで挟むスタイルで書かれていまして、このタグで挟まれたひと塊を要素(エレメント)と言います。

上記の例でいうと、「<h2>未題</h2>」がh2要素、「<a href=”~”>リンク</a>」がa要素となります。

さらに大きなくくりでいうと、「<html>~</html>」もその間のたくさんのタグや文字列群もひっくるめて一つの要素と言えます。

ブラウザはこのHTMLタグや要素などを解釈して、本来見せるべきWEBページの形に変換して表示するアプリケーションと言えます。

IEを操作してWEBページから情報を取得する場合はまずこのhtmlドキュメントをゴソっと取得するところから始まり、このhtmlドキュメントの中の必要な要素を都度取得したり、取得して加工したりという流れになります。

なお、タグにはそこそこの数の種類があってそれぞれの機能があります。それぞれが出現した暁にはそれぞれが何者なのかを知る必要があるので、そのあたりも都度説明を加えながら進めますね。

IEオブジェクトで開いたページのHTMLドキュメントを取得

では開いたIEからそのページのHTMLドキュメントを取得してみましょう。書き方としてはこうです。

Dim HTMLドキュメント変数名 As HTMLDocument
Set HTMLドキュメント変数名 = IEオブジェクト変数名.document

htmlドキュメントはHTMLDocumentという専用の型のオブジェクトです。したがってオブジェクト変数を宣言して、そこにセットして取扱います。

実際のプログラムではこのように書けばOKです。

では実際にHTMLドキュメントを取得できたかを確認してみましょう。

WEBページのタイトル名を取得

そのWEBページのタイトル名を取得する際は、そのHTMLドキュメントに対して

HTMLドキュメント.Title

と書きます。

これを使って、取得したHTMLドキュメントのタイトル名をDebug.Printしてみましょう。

ではこれを実行してみますと…

オートメーションエラー

おやおや…いやーな感じなエラーが出てしまいました。

が、問題ありません。想定内です。理由は明確で上記プログラムに間違いはありません。

しかし、ちょっと長くなってしまいそうなので、この理由については次回お伝えできればと思います。すみません。

まとめ

今回はWEBスクレイピングする際に知っておくべきHTMLの簡単な説明とHTMLドキュメントの取得の方法についてお伝えしました。

HTMLタグや要素といった考え方は、VBAでIEを操作していく上で今後もさんざん出てくる概念ですので、よく理解しておいて頂ければと思います。

今回はエラーが出てしまいましたが、全く問題ありません。

次回の記事でIEの読み込み待ちの処理を入れることで解消をしていきたいと思います。

【エクセルVBAでIE操作】ブラウザの読み込み待ちをしないとダメなのです
エクセルVBAでIEを操作するシリーズの第3回、今回はIEの読み込み待ちの処理を入れていきます。この処理はVBAでIEを扱う限りはほとんどの場合で必要となる処理ですので、ぜひ覚えて頂ければと思います。

どうぞ合わせてご覧下さい!

連載目次:エクセルVBAでIEを操作してWEBスクレイピング

IEを操作してWEBページのデータを取得して、エクセルのデータとして取り込む、つまりWEBスクレイピングをエクセルVBAで実現します。各種WEBページを課題として様々なデータの取得の仕方を解説していきたいと思います。
  1. 【エクセルVBAでIE操作】10分で終わるセッティングとWEBページの閲覧確認
  2. 【エクセルVBAでIE操作】HTMLタグと要素そしてドキュメントの取得
  3. 【エクセルVBAでIE操作】ブラウザの読み込み待ちをしないとダメなのです
  4. 【エクセルVBAでIE操作】ページ内のリンク先URLを全部取得する
  5. 【エクセルVBAでIE操作】ディスクリプションなどの要素をname属性でGetする
  6. 【エクセルVBAでIE操作】hタグなどの要素をタグ名でGetする
  7. 【エクセルVBAでIE操作】WEBページのテーブル要素を自動で取得する方法
  8. 【エクセルVBAでIE操作】IEで検索窓にキーワードを入力して送信する方法
  9. 【エクセルVBAでIE操作】ページをクロールしてブログの記事一覧を取得する方法
  10. 【エクセルVBAでIE操作】ブログの記事一覧ページから公開日とカテゴリを取得する
  11. 【エクセルVBAでIE操作】ページャーを最後のページまでどんどんリンクする
  12. 【エクセルVBAでIE操作】ユーザー名とパスワードを入力してログインをする

連載目次:データ一覧から請求書を自動で作る

お仕事において特定のデータ一覧から必要な情報を抽出するということは頻繁にありうると思います。ここではデータ一覧から請求書を作るということを目標に、実務で使えるスキルをまっすぐに身に着けることを目的としています。
  1. 【初心者向けエクセルVBA】データ一覧から請求書を自動で作る
  2. 【初心者向けエクセルVBA】For~Next文で簡潔にプログラムを書く
  3. 【初心者向けエクセルVBA】行の数をカウントする&不要な行を隠す
  4. 【初心者向けエクセルVBA】文字列の連結&Format関数での書式変更
  5. 【初心者向けエクセルVBA】If~Thenを使った条件分岐の超入門
  6. 【初心者向けエクセルVBA】Public変数の宣言とSubプロシージャの呼び出し
  7. 【初心者向けエクセルVBA】InputBoxでの日付入力と月末日の自動算出
  8. 【初心者向けエクセルVBA】Worksheetのコピーを活用して複数の請求書を作る
  9. 【初心者向けエクセルVBA】ファイルのコピーを使って取引先別の請求書を作る
  10. エクセルVBAでDateAdd関数を使って年月を条件としてSumIfs関数を使う方法
  11. 宣言もセットも不要!エクセルVBAでワークシートをオブジェクト名で取り扱う方法
  12. エクセルVBAでシートの列の挿入も簡単に対応できちゃう列挙体の使い方