PigData - ビッグデータ収集・分析・活用ソリューション

お問い合わせ
  • サービス&ソリューション
    • スクレイピング
      代行サービス
    • Webサイト更新チェックツール「TOWA」
    • データ統合&自動化システム構築サービス
    • サステナビリティ情報通知ツール「サステナモニター」
    • 最新営業リスト作成・管理
      ダッシュボード
    • Tableau構築支援サービス
    • シフト自動最適化AIソリューション
      「Optamo for Shift」
  • 導入事例
  • PigUP
  • ブログ
  • 運営会社
  • 資料ダウンロード
  • お問い合わせ
  • プライバシーポリシー
  • セキュリティポリシー
  • トップに戻る
スクレイピングをVBAで実現するには - ブログ画像

【サンプルコード公開】スクレイピングをVBAで実現するには?

PigData > ブログ > 【サンプルコード公開】スクレイピングをVBAで実現するには?
スクレイピングをVBAで実現するには - ブログ画像
2024.04.08
  • スクレイピング
スクレイピングの内製化を行う前に読むべき必須資料をダウンロードする

Webページから情報収集をする場合に、各ページからコピー・ペーストをするのは効率が悪いです。そこでおすすめの方法は、VBAによるスクレイピングです。プログラムによってデータの自動収集が可能で、作業効率が大幅に向上します。ExcelのVBAを活用することで、開発環境の構築が不要といったメリットもあります。

今回は、VBAによるスクレイピングの方法を解説します。

目次

  1. スクレイピングとは
  2. スクレイピングをVBAで行うメリット
  3. VBAでのスクレイピングを行うの事前準備
    1. 必要なもの
    2. 開発タブを表示
    3. ライブラリの導入
  4. 【実践】VBAでのスクレイピング
    1. VBAのスクレイピングのサンプルコード
    2. サンプルコード利用方法
  5. VBA以外のスクレイピング方法
  6. まとめ

スクレイピングとは

スクレイピングとは、Webページに掲載された情報をプログラムで自動的に抽出する技術を指します。また、プログラムによって情報収集できるため、データの分析・活用をしやすい特徴があります。スクレイピングは、Webページから何度も情報収集するようなルーティンワークの自動化に向いている技術です。

Webスクレイピング大全!これさえ読めばすべてがわかる

スクレイピングをVBAで行うメリット

Excel機能のVBAを利用したスクレイピングのメリットは以下の2点です。

開発環境が不要

VBAはExcelに標準搭載されているため、新しく環境を用意する必要がありません。普段Excelを使っている人であれば、慣れた動作の環境でスクレイピングを実装できます。

取得したデータをそのままExcelで分析・活用できる

VBAでスクレイピングをし、取得したデータはExcelに直接保存することができます。そのため、データをインポートする手間が省け、データ収集後にすぐ分析等の活用をすることができます。また、データ処理や分析もそのままVBAによって自動化することが可能です。

スクレイピングは、VBA以外にもPHP・JAVA・Pythonなど様々な言語で実現できます。しかし、開発環境が必要なため、VBAよりも実現のハードルが高くなります。

VBAでスクレイピングを行う事前準備

ここからは、VBAでスクレイピングするための事前準備について解説します。

必要なもの

VBAでスクレイピングするために必要なものは以下の2点です。

  • Excel
  • Internet Explorer

VBAは、Excelに搭載された機能です。今回、紹介する方法はInternet Explorerを利用してWebページの情報を収集します。

開発タブを表示

Excelのマクロ・VBAをはじめて利用される方は、Excelのツールバーに「開発」タブを表示させる必要があります。

「開発」タブの表示方法は以下の流れです。

  1. Excelを開きツールバー「ファイル」をクリック
  2. 「オプション」を選択
  3. 「リボンのユーザー設定」より「開発」にチェックを入れて保存

最後に、ツールバーに開発タブが表示されているか確認しましょう。

ライブラリの導入

Excelの標準ライブラリではスクレイピングを実装できません。そのため、ライブラリを追加導入する必要があります。ライブラリの導入方法は以下のとおりです。

  • Excelを開いて、ツールバーの「開発」をクリック
  • 左の「Visual Basic」ボタンをクリック
  • 起動したVBEのツールバー「ツール」より「参照設定」をクリック
  • 参照可能なライブラリファイルの一覧より以下の2項目をチェック

    ・Microsoft HTML Object Library
    ・Microsoft Internet Controls
  • 「OK」ボタンで完了

これにてVBAのスクレイピングの下準備が完了しました。

新規CTA

【実践】VBAでのスクレイピング

VBAのスクレイピングのサンプルコード

VBAのスクレイピングのサンプルコードを紹介します。

本日ご紹介するのは、指定したURLのtitle・h1・h2・h3タグの内容を収集するコードです。「スクレイピングをするURL」を変更してご利用ください。

Sub test()
Dim htmlie As New InternetExplorer
Dim htmlDoc As New HTMLDocument
Dim sheet_name As String
Dim str_url As String

str_url = "https://www.××××.com/" 'スクレイピングをするURL
sheet_name = "sheet1" '書き込むシート名

htmlie.Visible = True 'ページを表示するか否か True Or False
htmlie.navigate str_url

Do
    DoEvents
Loop Until htmlie.readyState = READYSTATE_COMPLETE

Set htmlDoc = htmlie.document

Dim i As Integer
i = 1

Worksheets(sheet_name).Cells(i, 1).Value = "URL:" + str_url
i = i + 1
Worksheets(sheet_name).Cells(i, 1).Value = "title"
i = i + 1

For Each Value In htmlDoc.getElementsByTagName("title")
    Worksheets(sheet_name).Cells(i, 1).Value = Value.innerText
    i = i + 1
Next Value

Worksheets(sheet_name).Cells(i, 1).Value = "h1"
i = i + 1

For Each Value In htmlDoc.getElementsByTagName("h1")
    Worksheets(sheet_name).Cells(i, 1).Value = Value.innerText
    i = i + 1
Next Value

Worksheets(sheet_name).Cells(i, 1).Value = "h2"
i = i + 1
For Each Value In htmlDoc.getElementsByTagName("h2")
    Worksheets(sheet_name).Cells(i, 1).Value = Value.innerText
    i = i + 1
Next Value

Worksheets(sheet_name).Cells(i, 1).Value = "h3"
i = i + 1
For Each Value In htmlDoc.getElementsByTagName("h3")
    Worksheets(sheet_name).Cells(i, 1).Value = Value.innerText
    i = i + 1
Next Value

End Sub

サンプルコードを実行すると、指定したシートのセルに収集した情報が自動的に入力されます。このように、VBAのスクレイピングは、欲しい情報をセルに書き込むことができ、データとして取り扱いやすいのも特徴です。

サンプルコード利用方法

VBAのサンプルコードの利用方法を解説します。

まず、Excelの新規「空白のブック」を作成します。ツールバー「開発」を押し「Visual Basic」を選択してください。するとVBAのコードエディタのVBEが起動します。

そのVBEのツールバー「挿入」より「標準モジュール」をクリックしてください。空白のモジュールが画面に表示されますので、サンプルコードをコピー・ペーストします。

サンプルコード7行目の「str_url = “https://www.××××.com/” ‘スクレイピングをするURL」を情報収集したいURLに変更してください。
(今回は弊社ブログ、IT弁護士に聞く「企業としてのWebスクレイピングは違法なのか?」で実行していきます。)

最後に、ツールバーにある「実行」を選択し、「Sub/ユーザーフォームの実行」をクリックします。指定したURLがInternet Explorerで表示され、Excelシートには収集した情報が入力されます。

今回のサンプルコードは指定したタグの内容を収集しましたが、他にもクラスやidを指定することも可能です。クラスで指定する場合は「getElementsByClassName」、idで指定する場合は「getElementById」を利用します。

VBA以外のスクレイピング方法

VBAは簡単にスクレイピングができる手段のひとつです。しかし、同じMicrosoftが提供するInternet Explorerは2022年6月16日(日本時間)をもってサポートが終了しているため、別の方法でのスクレイピングを考える人もいるでしょう。スクレイピングは前述しているように、様々な言語・ツール・サービスでの実装が可能です。ぜひ参考にしてみてください。

Pythonによるスクレイピング

一番汎用性の高いスクレイピングを行えるのがPythonによるスクレイピングです。スクレイピングに活用できるライブラリが多く存在するため、Pythonを少し勉強している人であれば実装が可能でしょう。

【コード付き】Pythonでスクレイピング(クローリング)をする方法

おススメのスクレイピングツール

VBAと同様に手軽にスクレイピングを行いたい人にはスクレイピングツールの活用がおススメです。
スクレイピングツールはノーコードで実装でき、無料で提供されているものも多くあります。しかし、Pythonで実装するほど自由度が高くないところや、海外の製品が多いため、理解やサポートが難しいという点もあります。

厳選スクレイピングツール10選!情報収集を自動化する方法

おススメのスクレイピングサービス

スクレイピングをツールではなく、業務委託して目的に合った形式でデータを提供するサービスも存在します。
もちろん、スクレイピングツールよりも費用が高くなってしまうことが多いですが、その分納得のいくサービスを受けられ、要望に合わせてスクレイピング以上のこともできるのがメリットです。

Webスクレイピングサービス企業5選!面倒なデータ収集を自動化

まとめ

VBAを利用したスクレイピングは、Webページからの情報収集を自動化できます。VBAでスクレイピングするメリットは、「Excel」「Internet Explorer」を用意するだけで実現可能なことです。他のPHP・JAVA・Pythonなどの言語でもスクレイピングは可能ですが、開発環境・専門的知識を必要とするためVBAに比べるとハードルが高くなります。

また、VBAのスクレイピングで取得したデータは、そのままExcelシートのセルに入力できるのもメリットです。それによって、情報収集した数値のグラフ化・データの分析なども手軽にできます。簡単にスクレイピングを試したい方はVBAを利用してみましょう。

ただし、スクレイピングをするには法律面など、いくつか注意しなければならないこともあるので、それを確認してから実行することをおすすめします。

また、VBAで実行してみたけど思ったとおりにスクレイピングができない、もっと高度なスクレイピングを実行したい場合にはスクレイピング専門の企業に相談してもよいでしょう。スクレイピング専門企業にもそれぞれ特徴があるので、比較し課題を解決できる企業を選ぶようにしましょう。

スクレイピングの内製化を行う前に読むべき必須資料
ダウンロード

記事を検索する

  • 全て
  • 業務効率化
  • データ活用
  • ビッグデータ
  • 営業
  • マーケティング
  • スクレイピング
  • 基礎知識
  • DX
  • データ分析
  • スクレイピング法律
  • セドリ
  • 飲食店
  • 不動産
  • 観光
  • SNS
  • IT用語
  • データ収集
  • 補助金
  • 社員渾身ブログ
  • 監視
  • AI
  • 市場調査
  • エンジニア
  • サステナビリティ
  • データ分析基盤
  • ニュース

ピックアップ記事

  • Webスクレイピング大全!これさえ読めばすべてがわかる
  • Webスクレイピングサービス企業5選!
    面倒なデータ収集を自動化
  • マル秘!Webサイト更新チェックツール活用術!
  • ESG担当者必見!関わる基礎知識を一挙公開
  • 【IT弁護士監修】スクレイピングは違法?法律に基づいて徹底解説
  • Webサイトの更新を自動でチェックする方法は?通知機能も活用!
  • 【まとめページ】社員が本気でふざけるデータ活用ブログ

よく読まれている記事

  • 画像一括ダウンロードが簡単にできる方法!画像収集の悩みを解決
  • Webサイトの更新を自動でチェックする方法は?通知機能も活用!
  • 【2025年最新】今更聞けないIT用語67選
  • スクレイピングは違法?禁止サイト6選とその見極め方
  • chrome拡張機能「Web Scraper」でのスクレイピング方法をご紹介

関連する記事

  • スクレイピングは違法?禁止サイト6選とその見極め方
  • Webスクレイピング大全!これさえ読めばすべてがわかる
  • Webスクレイピングサービス企業5選!
    面倒なデータ収集を自動化

前の記事

スクレイピングの全てがわかる!法律の注意点やDXにおける活用方法まで

ブログ一覧へ

次の記事

2024年最新!知っておくべきAI用語25選

お問い合わせ・資料ダウンロード

サービス&ソリューション
  • スクレイピング
    代行サービス
  • Webサイト更新チェックツール「TOWA」
  • データ統合&自動化システム構築サービス
  • サステナビリティ情報通知ツール「サステナモニター」
  • 最新営業リスト作成・管理
    ダッシュボード
  • Tableau構築支援サービス
  • シフト自動最適化AIソリューション
    「Optamo for Shift」
  • 導入事例
  • ニュース&ブログ
  • 運営会社
  • 資料ダウンロード
  • お問い合わせ
  • プライバシーポリシー
  • セキュリティポリシー
keyboard_arrow_up

Copyright © SMS DataTech All Right Reserved