ビジネスパーソンにとって基本ともいえるExcel(エクセル)ですが、単に「表を作成するソフトウェア」と捉えている方も多いでしょう。実際に、Excelを使えば様々なデータの計算・分析ができる上、グラフ・関数・データベースの作成機能など、ビジネスの業務効率化に役立つ機能が豊富に備わっているツールです。
ただし、元となるデータ入力は手動で行う必要があり、Webサイトなどから取得したデータをExcelにコピー&ペーストして、その上でグラフや関数を組んで分析する必要があります。
しかしながら、毎回手動でコピー&ペーストを繰り返すのは大変でしょう。そこで本記事では、Web上のデータをExcel内に自動で取り込む方法をいくつか紹介します。時間と労力を節約できれば、その分、分析や検証に時間を使うことができますので、ぜひ参考にしてください。
1.Webスクレイピング
Webスクレイピングは、WebデータをExcelに素早く取り込む最もかんたんな方法です。特に、Webスクレイピングツールを使えば、プログラミング知識がなくとも大部分をマウス操作だけで設定可能です。特定のWebサイトから任意のデータを自動で抽出し、Excelにエクスポートができます。
スクレイピングツールには様々な種類があり、それらには長所と短所があります。中でも高いシェアを誇るのが、「Octoparse(オクトパス)」です。その理由の1つが、Webスクレイピングテンプレートです。Octoparseのテンプレートには、あらかじめスクレイピングの実行タスクが組み込まれているため、データを取り込みたいWebページURLを入力するだけで、データ抽出が可能です。
例えば、Twitter(The X)で「ビッグデータ」に関する情報を収集したい場合は、Twitter(The X)のテンプレートを立ち上げ、パラメータに「ビッグデータ」と入力してタスクを実行します。すると、数秒でビッグデータに関連するツイート情報を得ることができます。
<手順>
1.Octoparseを立ち上げ、Twitter(The X)のテンプレートを選択し、「今すぐ使う」をクリックします。

2.Twitter(The X)テンプレートはいくつか種類があるので、「Tweets details by keywords」を選択し、「今すぐ使う」を押します。

- パラメーターにキーワードを入力したら、「保存して実行」をクリックします。

3.データ抽出が開始されるので、完了まで少しの間待ちます。実行が完了したらデータをエクスポートします。形式は、Excel・CSV・HTML・JSONから選択可能です。

4.以上でデータ抽出が完了です。実際にExcelでエクスポートしたデータは以下のように表示されます。

2.Webクエリ
Webページからデータをコピー&ペ―ストすることを除き、Webクエリは標準的なWebページからデータをExcelに取り込む際に使用します。インターネット上のさまざまなデータをExcelの表として取り込み、自由に加工ができます。
さらに、インターネット上のデータが更新されれば、Excel上のデータも自動的に更新させることができます。取り込みの手順は、WindowsとMacで操作が異なるため、それぞれ解説します。
【Windows】取り込み手順
1.『データ』タブ → 『外部データの取り込み』 → 『Webから(Webクエリ)』を選択します。
2.アドレスに取り込みたいサイトのURLを入力し、移動をクリックして接続します。

4.そうすると、取り込める表の横に黄色の矢印マークが表示されます。
5.取り込みたい表の左上にある『→』矢印マークをクリックし、範囲選択します。
6.右下の『取り込み』ボタンをクリックし、インポートする位置のセルを指定すると、Excelに表が取り込まれます。

【Mac】取り込み手順
1.データを取り込みたいWebサイトのURLをコピーします。今回はYahoo!ファイナンス「株式ランキング」のデータを取得します。
https://finance.yahoo.co.jp/stocks/ranking/volume?market=all&term=daily

2.MacでWebクエリを取得するには、「クエリファイル」の用意が必要です。拡張子「iqy」ファイルを探し、元々あるファイルをコピーし、テキストエディタで取得したURLを記載し保存しましょう。

3.Excelを開き、「データ」 → 「外部データの取り込み」→ 「Webクエリの実行」を選択します。

4.すると、Queriesフォルダが開くので、先ほど作成したクエリファイルを選択し、「データ取り出し」をクリックします。

5.取り込み先のセルを選択して[OK]ボタンをクリックします。

6.Webクエリが実行され、データが取得できました。

3.Excel VBA
Excelを使用するほとんどの方は、関数(= avg(…)、= sum(…)、= if(…)など)を使うことは多いと思いますが、「VBA」にはあまり馴染みがありません。VBA(Visual Basic for Applications)とは、Microsoft Officeに含まれるアプリケーションソフトの拡張機能である組み込み言語のことです。VBAで簡易なプログラムを記述し実行することで、複雑な処理の自動化などを行なうことができるものです。
初期設定時のExcelではVBAプログラミングのための「開発タブ」が隠されています。VBAを使用する前に、リボンに開発タブを表示する必要があります。
「ファイル」タブ→「オプション」→「Excelのオプション」の順にウィンドウを開きます。続いて「リボンのユーザー設定」→メインタブの「開発」にチェックを入れます。これでOKです。

VBAは、「VBE(Visual Basic Editor)」という専用のアプリケーションを使って編集していきます。先ほど追加した開発タブからVisual Basicを選択すると、VBEが立ち上がります。
VBAを使ってWebサイトからデータをExcel内に取り込むためには、いくつかのリクエストをWebページに送信し、これらのWebページから返されたデータを取得するための「VBAスクリプト」を作成(または取得)する必要があります。
VBAの使い方は少々複雑ですが、オンライン上にはVBAの使い方に関する資料と学習フォーラムが豊富に存在するので、興味がある方はそちらも参考にしてください。
4.データ取得代行サービス
複雑なVBAやスクレイピングに時間を掛けずに、手軽にデータを入手したい場合は、データ取得に関する豊富な経験・知識を持っているデータ取得代行サービスの活用がおすすめです。
Octoparseでも、スクレイピングを使ったデータ取得代行サービスを展開しています。Octoparseを使えば、誰でも簡単にスクレイピングが可能ですが、そもそもWebサイトによってスクレイピング制限があったり著作権表示があったりします。
そうしたWebサイトのデータ取得は難易度が高いため、豊富な経験を持つスクレイピングチームは、適切な方法でWebサイトからデータを取得し、最適なフォーマットで納品可能です。
5.プログラミング言語
一般的には、プログラマやシステムエンジニアが、PHP、Python、Rubyなどのプログラミング言語でWebクローラーを自作し、Webスクレイピングによってデータを自動収集します。自分でスクレイピングを実行できれば、自由にカスタマイズできます。
ただし、難解なプログラミング言語を習得するには、それなりに学習コストが掛かるため、初心者には不向きです。
まとめ
今回はWebサイトからデータを取得する方法を紹介しました。数十件程度のデータ取得であれば、手作業で行ったほうが早いかもしれませんが、何百件〜何千件、さらにそれが毎回となれば、自動化することで、作業時間を大幅に削減できます。
今回紹介したように、Webページ上のデータをExcelに取り込む方法はたくさんあります。自身のスキルや経験に応じて、やりやすい方法から試してみてください。