はじめに
本記事の目的
本記事は、Webサイトに載ったデータをExcelに効率よく取り込む方法を分かりやすく解説します。手作業でのコピー&ペーストを減らし、時間を節約しミスを減らすことを目指します。
想定読者
- Excelの基本操作ができる方
- Web上の表や一覧を定期的に取り込みたい方
- 手作業を自動化して業務効率を上げたい方
初心者から中上級者まで、段階に応じた手法を用意しています。
本記事の構成と進め方
本記事は全7章で構成します。第2章はExcelの標準機能、第3章はPower Query、第4章はブラウザ拡張やノーコードツール、第5章はVBAによる自動化、第6章で手動と自動の比較、第7章で実用例を示します。各章で手順、利点・欠点、簡単な実例を示し、読者が自分に合った方法を選べるようにします。
注意点(基本的な心構え)
- Webサイトの利用規約や著作権を守ってください。
- サイトに過度な負荷をかけないようにしましょう。
- 個人情報や機密データの取り扱いに十分注意してください。
この章では全体像を把握していただくことを目的としました。続く章で具体的な手順と実践例を順に説明します。
Excelの組み込み機能を使用したWeb取り込み
概要
Excelに標準で備わる「Web取り込み」は、Webページ上の表やランキングを簡単にシートに取り込めます。準備はURLだけで、専門知識がなくても使えます。具体的な操作手順を以下に示します。
手順(Windows版Excelの例)
- 取り込みたいWebページのURLをブラウザでコピーします。
- Excelの「データ」タブを開き、「Webから」または「データの取得」→「Webから」を選択します。
- 表示されたダイアログにURLを貼り付けて接続します。
- Excelがページ内のテーブルを検出すると、一覧が表示されるので取り込みたいテーブルを選び「読み込み」を押します。
取り込み後の操作
取り込んだデータは表形式でシートに展開されます。列幅や書式を変更でき、テーブルのスタイルも簡単に変更できます。データがWeb側で更新された場合は、リボンの「すべて更新」や右クリックの「更新」で最新情報を取得できます。
よくある問題と対処法
- テーブルが表示されない:ページがJavaScriptで動的に生成されると検出できないことがあります。その場合は別の方法(Power Queryやブラウザ拡張)を検討してください。
- ログインが必要なページ:認証が必要な場合はExcelからは取り込めないことがあります。ログイン後の固定URLがあれば試してください。
実用的なコツ
- まずは公開された静的な表から試すと操作に慣れます。
- 取り込み後に列の型(数値や日付)を確認すると、計算や並べ替えがスムーズです。
- 定期的に更新したい表は、ブックを開いたときに更新する設定を検討してください。
Power Queryを活用した高度なデータ加工
はじめに
Power QueryはWebから直接データを取り込み、整理や加工を自動化できるツールです。Excelの「データ」→「Webから」で取得し、テーブルを選んで「データの編集」を押すとPower Query Editorが開きます。
基本の流れ
- 不要な列を削除:列ヘッダーを右クリックして「削除」を選びます。例:広告列や空列を除く。
- データ型を変更:価格を数値、日付を日付型にして計算や並べ替えを安全に行います。
- 連番(Index)挿入:ホーム→列の追加→インデックス列で1からの通し番号を付けます。
よく使う変換と具体例
- 列の分割:住所を「都道府県|市区町村」に分ける。
- 列の結合:名前と苗字を結合してフルネームを作る。
- ピボット/アンピボット:月ごとの売上列を「月/売上」形式に変換する(アンピボット)。
- 条件列:在庫数が0なら「在庫なし」、それ以外は「在庫あり」と表示する式を作れます。
- 集計(Group By):カテゴリごとに合計や平均を算出します。
効率化のヒント
- 右側のApplied Stepsを順に確認し、不要な手順を削除して読みやすくします。
- ステップ名を分かりやすく変更すると保守が楽になります。
- 動的なURLやパラメーターを使えば複数ページを同じ処理で取り込めます。
読み込みと更新
編集が終わったら「閉じて読み込む」でExcelに戻します。更新はクエリを右クリックして「更新」またはExcelの「すべて更新」で反映できます。
ブラウザ拡張機能とノーコードツールの活用
概要
複雑なページ構造やプログラミング不要の場面では、ブラウザ拡張やノーコードのスクレイピングツールが便利です。画面上で欲しい項目を選ぶだけで、ExcelやCSVに出力できます。
利点
- 直感的に操作できる点
- 短時間でデータを取得できる点
- プログラミング知識が不要な点
代表的なツールと使い方
- Data Miner / Instant Data Scraper:ページ内の表やリストを自動検出し、選択後にエクスポートできます。
- Thunderbit:AIが項目を提案し、必要なカラムだけを抽出できます。コピーやダウンロードが可能です。
実践のポイント
- まずブラウザで拡張をインストールし、対象ページで要素をクリックして選択します。
- 複数ページにまたがる場合はページネーション機能を使うか、URLパターンで繰り返し抽出します。
- 出力形式はExcel(.xlsx)かCSVを選び、文字コード(UTF-8)に注意します。
注意点
- 公開データでも利用規約を確認してください。
- ログインが必要なサイトや個人情報の扱いには注意が必要です。
導入の流れ(簡単)
- ツールをインストール
- サンプルページで項目を選択
- 抽出を実行してプレビュー確認
- ExcelまたはCSVでエクスポート
この章では、初めての方でも扱いやすい手順を中心に解説しました。
VBAコードを使用した自動スクレイピング
はじめに
高度なカスタマイズが必要な場合、ExcelのVBAで自動スクレイピングを組めます。ブラウザ制御やHTML解析を組み合わせると、特定のページから商品名や価格、評価を自動で取得できます。
参照設定
- 開発タブ→Visual Basicを開きます。
- メニューの[ツール]→[参照設定]で以下をチェックします。
- Microsoft Internet Controls
- Microsoft HTML Object Library
これでIEオブジェクトとHTMLパーサーが使えます。
基本の流れ(例)
- InternetExplorerオブジェクトでページに移動
- 読み込み完了を待つ
- DocumentオブジェクトからIDやクラス名で要素を取得
- 必要なテキストをワークシートに書き込む
サンプルコード(短縮)
Sub ScrapeSample()
Dim ie As New InternetExplorer
ie.Visible = False
ie.Navigate "https://www.amazon.co.jp/dp/ASIN"
Do While ie.Busy Or ie.readyState<>4: DoEvents: Loop
Dim doc As HTMLDocument: Set doc = ie.Document
Range("A1").Value = Trim(doc.getElementById("productTitle").innerText)
Range("A2").Value = Trim(doc.getElementById("priceblock_ourprice").innerText)
ie.Quit
End Sub
注意点と運用
- 頻繁なアクセスは控え、適度に待機時間を入れてください。
- 構造が変わると取得できなくなるため、定期的に確認してください。
- 自動実行する場合はApplication.OnTimeでスケジュールできます。
以上がVBAでの基本的な自動スクレイピングの流れです。必要な条件や取得項目に合わせて要素の指定を調整してください。
手動コピー&ペーストとの比較
概要
手動でコピー&ペーストする方法は最も直感的で準備がほとんど不要です。小規模で静的な表に対して素早く使えますが、構造が複雑なページや頻繁に更新されるデータには向きません。
メリット
- 準備が不要で、すぐに取りかかれる。
- Excelの基本操作だけで完了する。
- レイアウトが単純な場合は最短で結果を得られる。
デメリット
- 表の崩れや余分な改行、結合セルなどで手作業が増える。
- データ量が増えると人的ミスが起きやすい。
- 定期的に同じ作業を繰り返す場合は非効率。
いつ使うべきか
少量で一度だけ取り込む、あるいはレイアウトが非常に単純なときに向きます。繰り返しや高精度が必要な場合は、Power Queryや自動化を検討してください。
実践的なコツ
- 貼り付け前にテキストエディタで不要な改行を整える。
- 「形式を選択して貼り付け」のプレーンテキストで貼ると崩れを減らせる。
- 小さなブロックに分けて貼り付け、問題箇所を特定する。
- 最終的にはテンプレートを作り、手順を記録して再現性を高める。
実用的な活用例
はじめに
Webからのデータ取り込みは業務で幅広く使えます。ここでは、実際に使いやすい具体例と運用のコツをやさしく説明します。
すぐ使える具体例
- 週間天気予報の取り込み
- Excelの「データ」→「Webから取得」で対象ページを開き、表示された矢印をクリックして取り込みます。定期更新を設定すれば最新予報を自動で取得できます。
- ランキングや商品データの定期収集
- ECサイトの一覧やランキングをPower Queryで取り込み、価格やレビュー数を毎日更新して分析できます。
- 価格・在庫の監視
- 価格変動をテーブル化し、条件付き書式で閾値を超えたら色を変えるなど、業務アラートに使えます。
- 株価や為替の定期取得
- 提供されるCSVやAPIがあれば安定して取得できます。取得頻度は配信元のルールに合わせてください。
運用のポイント
- まずは小さな範囲でテストしてから自動化してください。
- ページ構造が変わると取り込みが止まるため、定期的に動作確認を行ってください。
- ログやバックアップを残すとトラブル対応が楽になります。
実務では、こうした取り込みを定期化してレポートやダッシュボードに連携すると、手作業の工数削減と意思決定の迅速化に役立ちます。












