PigDataロゴ

お問い合わせ
  • サービス&ソリューション
    • スクレイピング代行サービス
    • 物件比較ツール「Mekiki」
    • Webサイト監視ツール「TOWA」
    • 最新営業リスト作成・管理
      ダッシュボード
    • SNS分析サービス
      「SocialAnalyst」
    • Tableau構築支援サービス
    • シフト自動最適化AIソリューション
      「Optamo for Shift」
  • 導入事例
  • ブログ
  • 運営会社
  • 資料ダウンロード
  • お問い合わせ
  • プライバシーポリシー
  • セキュリティポリシー
  • トップに戻る
スクレイピングをVBAで実現するには - ブログ画像

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

PigData > ブログ > 【サンプルコード公開】スクレイピングをVBAで実現するには?
スクレイピングをVBAで実現するには - ブログ画像
2022.07.15
  • スクレイピング

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

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

目次

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

スクレイピングとは

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

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

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

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

・開発環境が不要
・取得したデータをそのままExcelで分析、活用できる

スクレイピングは、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のスクレイピングの下準備が完了しました。

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

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

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

新規CTA

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

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

記事を検索する

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

最新の記事

  • ChatGPTのビジネスでの活用方法!注意点も紹介
  • 需要予測とは?経営に重要な理由と計算不要の手法を解説
  • 簡単にわかる、機械学習の手法を解説!参考になる活用事例も
  • AIの活用方法10選!AIでできることから今後のトレンドまで徹底解説
  • 転売対策してますか?対策方法とおすすめツール紹介

よく読まれている記事

  • 【2023年最新】今更聞けないIT用語45選
  • Webスクレイピングとは?違法にならない方法とスクレイピング禁止サイト5選をご紹介
  • 画像一括ダウンロードが簡単にできる!画像収集の悩みを解決する方法をご紹介
  • Excelは不要!グラフ作成ツールおすすめ10選
  • 【サンプルコード公開】スクレイピングをVBAで実現するには?

関連する記事

  • 需要予測とは?経営に重要な理由と計算不要の手法を解説
  • SERPs とは?GoogleのSEO対策に必須の対策を解説
  • Webクリッピングとは?メリットを知って集めたデータを有効活用

前の記事

営業リスト作成~人は機械にどれだけあらがえるか ~

ブログ一覧へ

次の記事

海外のスクレイピングサービス5選!その特徴を徹底解説【中国編】

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

サービス&ソリューション
  • スクレイピング代行サービス
  • 物件比較ツール「Mekiki」
  • Webサイト監視ツール「TOWA」
  • 最新営業リスト作成・管理
    ダッシュボード
  • SNS分析サービス
    「SocialAnalyst」
  • Tableau構築支援サービス
  • シフト自動最適化AIソリューション
    「Optamo for Shift」
  • 導入事例
  • ニュース&ブログ
  • 運営会社
  • 資料ダウンロード
  • お問い合わせ
  • プライバシーポリシー
  • セキュリティポリシー
keyboard_arrow_up

Copyright © SMS DataTech All Right Reserved