【Excel VBA×Selenium】Schoo講座データを自動スクレイピング!2,200件超のカリキュラム情報をExcelリストとして一括取得した事例
Schoo(スクー)の講座・カリキュラム情報を自動取得!
2,200件超の授業データをExcelリストとして納品した事例
こんにちは!
「Schoo for Businessの研修パッケージに含まれる授業の詳細情報を、一覧としてまとめたい…」
「各カリキュラムのページを一つずつ開いて、授業タイトルや所要時間を手作業で転記するのは膨大な時間がかかる…」
「研修パッケージ名・中項目・小項目・時間を階層構造で整理したリストが欲しいけど、手動では正確性に限界がある…」
オンライン学習プラットフォーム「Schoo」は、法人向けに多数の研修パッケージを提供しており、各パッケージには複数の授業(講座)が含まれています。しかし、研修パッケージ全体の授業構成を横断的に把握するには、数百もの個別ページにアクセスして情報を転記する必要があり、手作業では非現実的な作業量です。
今回は、Schooの研修パッケージ一覧から各カリキュラムページを自動巡回し、授業タイトル・所要時間などの情報を階層構造で整理して、2,200件超のExcelリストとして納品した事例をご紹介します。
入力データと処理の全体像
Excel管理シートからURLを自動取得
本プログラムの起点となるのは、クライアント様がお持ちのExcel管理ファイル(xlsm形式)です。このファイルのSheet1には、Schooの研修パッケージ一覧が整理されており、各パッケージの名称にSchooサイトへのハイパーリンクが埋め込まれています。
管理シートには以下の情報が含まれています。
| 列 | 項目名 | 内容 |
|---|---|---|
| A列 | 研修パッケージ名 | Schooのカリキュラムページへのハイパーリンク付きタイトル |
| B列 | 説明文 | 研修パッケージの概要・学習項目 |
| C列 | 所要時間 | 総所要時間(分単位) |
| D列 | 職位 | 対象職位(全職種、若手社員など) |
| E〜F列 | 職種・テーマ | 対象職種やテーマ分類 |
| G列 | 最終更新日 | カリキュラムの最終更新日 |
| H列 | 授業名・URL | 個別授業へのハイパーリンク |
| I列 | 授業時間 | 個別授業の所要時間 |
プログラムはこの管理シートのA列からハイパーリンクURLを自動で抽出し、各カリキュラムページへのアクセスを順次実行します。約220件の研修パッケージURLを処理対象として読み込みます。

入力データ:Schooの研修パッケージ一覧が整理されたExcel管理シート(Sheet1)
Schooカリキュラムページの自動スクレイピング処理
Selenium WebDriverによるブラウザ自動操作
本プログラムの中核は、Excel VBAとSelenium WebDriverを組み合わせたブラウザ自動操作によるスクレイピング処理です。Schooのカリキュラムページは動的に生成されるWebページであるため、単純なHTTPリクエストでは情報を取得できません。実際にブラウザを立ち上げ、JavaScriptの実行が完了した後のレンダリング済みページから情報を抽出する必要があります。
プログラムの主な処理フローは以下のとおりです。
Chromeブラウザの初期設定:
- ウィンドウ最大化(
start-maximized)による安定した要素検出 - シークレットモード(
incognito)によるキャッシュ・Cookie影響の排除 - サンドボックス無効化(
no-sandbox)によるセキュリティダイアログの回避 - 日本語ロケール指定(
lang=ja-JP)による正確な日本語テキスト取得
カリキュラムテーブルからの階層的データ抽出
Schooの各カリキュラムページには、授業一覧がHTML <table> 要素(classは classes)として構造化されています。プログラムはこのテーブルの各行(<tr>要素)を順次走査し、行の構造に応じてデータを適切に分類します。
テーブル構造に基づく判定ロジック:
- 中項目行の判定:
titleクラスの要素にcolspan属性がある場合 → 大項目(研修パッケージ名)と中項目(講座名)の組み合わせとして記録し、その行の時間情報を取得 - 小項目行の判定:
titleクラスの要素が存在しcolspanがない場合 → 親の大項目・中項目に紐づく個別授業名と時間を記録
この判定ロジックにより、2階層の親子関係を持つカリキュラム構造を正確に再現したリストを自動生成できます。

情報取得対象となるSchooのカリキュラムページ:授業一覧テーブルから情報を自動抽出
堅牢なエラーハンドリングと待機制御
220件以上のURLを順次巡回する処理では、ネットワーク遅延やサーバーの応答待ちが発生することは避けられません。本プログラムでは、以下の堅牢なエラーハンドリング機能を実装し、長時間の自動処理でも安定した稼働を実現しています。
安定稼働を支える仕組み:
- 要素待機関数の実装:
h1要素の表示をトリガーとしてページ読み込み完了を検知。500ミリ秒間隔でポーリングし、要素が見つからない場合は最大50回(約25秒)まで待機 - 自動リトライ機能:10回のポーリングごとにページをリロードして再取得を試行。サーバーの一時的な応答エラーにも自動で対応
- サーバーエラー検知:ページの読み込みには成功したものの、表示内容がサーバーエラーメッセージだった場合に検知し、適切にスキップ処理を実行
- スクロール制御:テーブル要素の位置まで自動スクロール(
scrollIntoView)を実行し、画面外の要素も確実にレンダリングされた状態で取得 - エラーログ記録:URLごとに取得成否を管理シートに記録し、失敗したURLの追跡が容易
これらの機能により、すべてのURLの処理が完了するまで人手の介入なしに自動で処理を継続できます。
出力データの構造と活用方法
4列の階層構造リスト
スクレイピングで取得したデータは、Excelの「data」シートに以下の4列構成で出力されます。
| 列 | 項目名 | 内容 | 例 |
|---|---|---|---|
| A列 | 大項目 | 研修パッケージ名 | 「Schooカリキュラム」次世代リーダー育成研修「初級」 |
| B列 | 中項目 | 講座(シリーズ)名 | 次世代リーダー育成研修 初級 |
| C列 | 小項目 | 個別授業タイトル | 第1回【次世代リーダー育成研修カリキュラム版】デザイン思考と不確実性 |
| D列 | 時間 | 授業の所要時間 | 69分 |
大項目と中項目のみで小項目が空欄の行は、その講座シリーズ全体の合計時間(例:「6時間 27分」)を示しています。これにより、研修パッケージ単位での時間配分の把握と、個別授業レベルでの詳細確認の両方が一つのリストで可能となります。
最終的に**2,246行 **(ヘッダー行を含む)のデータを取得し、Schooの研修パッケージに含まれるすべての授業情報を網羅的にリスト化しました。

出力データ:2,200件超の授業データが大項目・中項目・小項目・時間の4列構成で整理
納品データの活用シーン
このリストは、以下のようなビジネスシーンで活用できます。
研修計画の策定・最適化:
全カリキュラムの授業構成と所要時間が一覧で把握できるため、年間の研修計画策定や、部門ごとの受講カリキュラム選定を効率的に進めることが可能です。「この研修パッケージは合計何時間かかるのか」「どのような授業で構成されているのか」といった情報を、ページを開くことなくExcel上で即座に確認・比較できます。
受講管理・進捗トラッキング:
授業単位でリスト化されているため、各社員の受講状況管理表のマスターデータとして活用できます。ピボットテーブルやフィルター機能を使って、研修パッケージ別・講座別の集計や進捗管理が容易に行えます。
カスタムカリキュラムの設計:
自社の研修ニーズに合わせて、複数の研修パッケージから必要な授業だけをピックアップし、オリジナルの研修プログラムを設計する際の参照データとして活用できます。
開発費用と費用対効果
今回の案件はリスト納品の形式で対応しており、費用はおおよそ15,000円〜20,000円ほどです。リスト納品の場合、プログラムファイルを納品する場合と比較して3割〜5割ほど費用を抑えてご提供することが可能です。
手作業で同様のリストを作成した場合のコストと比較すると、その差は歴然です。
コスト比較:
- 手作業の場合:220件のカリキュラムページを開き、各ページの授業テーブルから2,200件超のデータを転記 → 1件あたり1〜2分で計算しても約37〜74時間の作業時間が必要
- 自動化プログラムの場合:開発費用15,000〜20,000円 + 自動処理で完了
時給1,000円で換算しても37,000〜74,000円相当の人件費が発生するため、自動化による費用対効果は極めて高いと言えます。さらに、手作業では避けられない転記ミスや見落としのリスクもゼロにできます。
このようなデータ収集ニーズをお持ちの方におすすめです
- オンライン学習プラットフォームの講座情報を横断的にリスト化して、研修計画の参考にしたい
- Schooの研修パッケージの全授業構成を一覧で把握し、自社の研修プログラムに最適なカリキュラムを選定したい
- 手作業でのデータ転記に限界を感じており、Webスクレイピングによる自動化で大幅な時間短縮を実現したい
- プログラムファイルの納品ではなく、完成したデータリストの納品で費用を抑えたい
Schooの講座データ収集や、その他Webサイトからの情報スクレイピングにご興味がございましたら、どんな小さなことでも構いませんので、まずはお気軽にご相談ください。
お客様のデータ収集ニーズに最適なスクレイピングプログラムをご提案いたします。


