Excelは表計算ソフトとして高機能であり、データの計算や整理に優れたツールですが、実は外部のWebサービスと連携してリアルタイムな情報を取得することもできます。
その機能を実現するのが「WEBSERVICE関数」です。為替レートや天気予報、株価情報など、Web APIを通じてさまざまなデータをExcel内で扱えるようになるため、業務の効率化や自動化にも役立ちます。
本記事では、WEBSERVICE関数の基本的な使い方から、実践的な活用例、注意点までをわかりやすく解説します。
WEBSERVICE関数は、Excelに組み込まれている外部データ取得用の関数です。
指定したURL(Web APIなど)からデータを取得し、Excelセルに表示させることができます。
=WEBSERVICE("URL")
この関数は、APIやWeb上のXML/JSONデータを取得してExcelで活用する場面で使用されます。特にMicrosoft 365やExcel 2013以降のバージョンで使用可能です。
構文は非常にシンプルです。
=WEBSERVICE(url)
url
:データを取得したいWebアドレス。文字列またはセル参照が可能です。=WEBSERVICE("https://api.exchangerate.host/latest?base=USD&symbols=JPY")
上記のように為替情報のAPIを指定することで、最新の為替レートをExcelに取り込むことができます。
Webサービスによって取得できる情報は異なりますが、主に次のようなデータが対象です:
これらのデータを自動的に取り込み、Excel内でグラフや表として可視化することも可能です。
以下は、米ドル(USD)から日本円(JPY)への最新為替レートを取得する例です。
"https://api.exchangerate.host/latest?base=USD&symbols=JPY"
=WEBSERVICE(A1)
{"motd":{"msg":"..."},"success":true,"base":"USD","date":"2025-05-26","rates":{"JPY":156.78}}
WEBSERVICE関数で取得したデータはXMLまたはJSON形式であることが多く、Excel単体ではそのまま扱いづらいことがあります。
XML形式の場合は、FILTERXML関数を使って特定の値を抽出できます。
"https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml"
=WEBSERVICE(A1)
=FILTERXML(B1, "//item/title")
ExcelではJSONデータを直接解析する関数がないため、VBAやPower Queryを使ってJSONを整形・解析する必要があります。
また、Microsoft 365では「Power Query」の機能を利用すれば、JSONをテーブル形式で簡単に取り込めます。
URLに日本語が含まれていると、関数が正しく動作しないことがあります。エンコード処理(ENCODEURL関数
)が必要な場合があります。
Excel標準の関数だけではJSON形式を解析できないため、VBAやPower Queryの活用が重要になります。
企業ネットワークやファイアウォールで外部接続が制限されていると、WEBSERVICE関数が機能しない場合があります。
セルに表示できる文字数には制限があるため、大量データを一気に取得すると文字列が切れてしまいます。
より高度なデータ取得・加工には「Power Query」が便利です。JSON形式のAPIレスポンスを表形式に変換できるため、WEBSERVICE関数よりも柔軟です。
複雑なデータ処理や繰り返し取得処理にはVBAが適しています。HTTPリクエストを発行し、レスポンスを整形してシートに書き込むコードを組むことができます。
WEBSERVICE関数は、ExcelとWebの世界をつなぐ便利な関数です。正しい使い方をマスターすれば、外部データを簡単にExcelに取り込むことができ、業務の自動化やレポート作成の効率化につながります。
ただし、JSONの解析やセキュリティ制限といった課題もあるため、FILTERXML関数、Power Query、VBAなどの補完手段と組み合わせて使うことが現実的です。
まずはシンプルなAPIから試して、Excelの可能性を広げてみましょう。