Excelをスクレイピングツールとして活用!Webからデータを自動取得する方法
Webスクレイピングとは、Webサイトからデータや情報、画像などを自動的な手法で抽出することです。「全自動のコピーアンドペースト」と考えると分かりやすいでしょう。
専用のアプリを作成・利用して、目的のWebサイトへアクセスし、必要な情報だけをコピーします。Webサイト全体をダウンロードするよりも、はるかに精密な収集が可能です。
あらゆるツールと同様に、Webスクレイピングは善にも悪にも使われます。適切な用途としては、コンテンツに基づく検索エンジンのランキング作成、価格比較ショッピング、株式市場情報のモニタリングなどが挙げられます。リサーチツールとして活用するのも良いでしょう。
ExcelでWebサイトをスクレイピングするには?
意外に思われるかもしれませんが、実はExcelには長い間、少なくともExcel 2003以降、Webサイトからデータを抽出する機能が備わっていました。ただ、Webスクレイピングという発想自体があまり知られておらず、ましてや表計算ソフトで行うと考える人はほとんどいません。しかし、驚くほど簡単で強力なのです。ここでは、Microsoft Officeのキーボードショートカット集を作りながら、その方法を学びましょう。
スクレイピング対象のサイトを見つける
まず最初に行うのは、情報を取得したい具体的なWebページを見つけることです。公式サポートサイト https://support.office.com/ にアクセスして検索してみましょう。検索キーワードは「frequently used shortcuts(よく使うショートカット)」とします。Outlook、Excel、Wordなど、特定のアプリ名を加えることで、さらに絞り込んだ検索が可能です。結果ページをブックマークしておくと、後で簡単に戻れて便利です。

検索結果の「Windows版Excelのキーボードショートカット」をクリックします。ページが開いたら、Excelのバージョン一覧からNewer Versions(新しいバージョン)をクリックします。これで最新の情報を扱うことになります。
検索結果ページに戻り、他のOfficeアプリの結果もそれぞれタブで開いてブックマークしておきましょう。この演習のためにも有効です。多くの人はここでOfficeショートカットの収集を終えてしまいますが、私たちは違います。Excelに取り込めば、いつでも好きなように自由に活用できるのです。
Excelを開いてスクレイピングする
Excelを開いて新しいブックを作成し、「Office Shortcuts」という名前で保存します。OneDriveをお使いの場合はそこに保存すると、「自動保存(AutoSave)」機能が利用できます。
ブックを保存したら、「データ」タブをクリックします。

データタブのリボンにある「Webから」をクリックします。

「Webから」ウィザードのウィンドウが開きます。ここに、データを取得したいWebサイトのアドレス(URL)を入力します。Webブラウザに切り替えてURLをコピーしてください。

URLを「Webから」ウィザードの「URL」欄に貼り付けます。「基本(Basic)」モードと「詳細(Advanced)」モードを選択できます。詳細モードでは、Webサイトからのデータ取得方法についてより多くのオプションが利用可能です。今回は基本モードだけで十分です。「OK」をクリックします。

ExcelがWebサイトへの接続を試みます。接続には数秒かかる場合があり、進行状況を示すウィンドウが表示されます。

「ナビゲーター(Navigator)」ウィンドウが開き、左側にWebサイト上のテーブル一覧が表示されます。テーブルを選択すると、右側にプレビューが表示されます。ここでは「Frequently used shortcuts(よく使うショートカット)」テーブルを選択しましょう。

目的のテーブルを探す必要がある場合は、「Webビュー(Web View)」タブをクリックして実際のWebサイトを表示できます。テーブルが見つかったらクリックすれば、インポート対象として選択されます。

次に、ウィンドウ下部の「読み込み(Load)」ボタンをクリックします。他にもオプションがありますが、それらはより複雑で、初めてのスクレイピングとしては範囲外です。そうしたオプションが存在することだけ覚えておけば十分です。ExcelのWebスクレイピング機能は非常に強力です。

数秒後にWebテーブルがExcelに読み込まれます。下の画像の「1」の位置にデータが表示されます。「2」はWebサイトからデータを取得するために使用された「クエリ(Query)」を示しています。1つのブックに複数のクエリがある場合、ここで使用するクエリを選択します。

データがExcelテーブルとしてスプレッドシートに取り込まれる点に注目してください。フィルターや並べ替えがすぐに使える状態になっています。
同じ手順を繰り返せば、Outlook、Word、Access、PowerPointなど、他のOfficeアプリのショートカットが掲載されたWebページからもデータを取得できます。
スクレイピングしたデータをExcelで常に最新に保つ
おまけとして、スクレイピングしたデータをExcelで常に最新の状態に保つ方法をご紹介します。これは、Excelのデータスクレイピング機能がいかに強力かを示す好例です。とはいえ、これでもExcelにできる最も基本的なスクレイピングに過ぎません。
例として、https://www.cnbc.com/stocks/ のような株価情報ページを使用してみましょう。

先ほどと同じ手順で、アドレスバーから新しいURLをコピーして貼り付けます。

ナビゲーターウィンドウが開き、利用可能なテーブルが表示されます。「Major U.S. Stock Indices(米国主要株価指数)」を選択しましょう。

データの取得が完了すると、次のようなスプレッドシートが表示されます。

右側に「米国主要株価指数」のクエリが表示されるので、選択してハイライト表示します。「テーブルツール(Table Tools)」タブの「デザイン(Design)」領域にいることを確認し、「更新(Refresh)」の下矢印をクリックします。次に「接続プロパティ(Connection Properties)」をクリックします。

「クエリプロパティ(Query Properties)」ウィンドウの「使用方法(Usage)」タブで、情報の更新方法を制御できます。一定期間ごとの更新、ブックを次に開いたときの更新、バックグラウンドでの更新、あるいはこれらの組み合わせを設定できます。必要な設定を選んだら、「OK」をクリックしてウィンドウを閉じます。

これで完成です!株価、スポーツの試合結果、その他頻繁に変化するデータを、Excelのスプレッドシートから追跡できるようになりました。Excelの数式や関数を使いこなせば、データでやりたいことはほぼ何でも実現できます。
株価トレンドの分析、職場でのファンタジースポーツの順位表管理、天気の記録など、試してみてはいかがでしょうか。限界を定めるのは、あなたの想像力とインターネット上に存在するデータだけです。
-
【Excel】フィルターオプション(高度なフィルタ)で抽出結果を別の場所にコピーする方法
Excelのフィルターオプション(高度なフィルタ)は、抽出条件の適用の有無にかかわらず、セル範囲のデータを別の場所へコピーできる非常に便利な機能です。本記事では、フィルターオプションを使ってデータ範囲を別の場所にコピーする方法を、ステップごとにわかりやすく解説します。 Excelのフィルターオプションとは? フィルターオプションは、Excelのデータタブにある並べ替えとフィルターグループから利用できるツールです。 この機能では、任意のデータセットに対して次の3つの操作を実行できます。 データセットをある場所から別の場所へコピーする 抽出条件を指定してデータを絞り込む 重複する値を削除し、
-
WebからExcelへデータをインポートする方法【2つの簡単ステップで解説】
大きなMicrosoft Excelのワークシートを扱っていると、Web上のデータをExcelに取り込みたい場面がよくあります。実は、Webからのデータ取得はとても簡単で、手作業で入力するのに比べて大幅な時間短縮にもなります。この記事では、ExcelにWebデータを効率的にインポートできる、2つの簡単な手順をわかりやすい図解付きでご紹介します。 WebデータをExcelにインポートする2つの簡単なステップ ここでは、アルマーニ・グループの複数の営業担当者に関する情報が記載された大きなExcelワークシートがあると仮定します。列Bには営業担当者の氏名、列CにはID番号、列Dには各担当者が獲得した