無料WEB API活用ガイド for Excel/Access

無料WEB API活用ガイド for Excel & Access

このページでは、ExcelやAccessの機能を拡張し、日々の業務を自動化・効率化できる、無料で商用利用も可能なWEB APIを厳選してご紹介します。
各APIの概要や利用制限に加えて、コーディング不要の「Power Query」と、より柔軟な「VBA」を使った具体的な使い方を解説します。

基本的な知識・用語解説

APIとは?

API (Application Programming Interface) は、あるソフトウェアの機能や情報を、外部の他のソフトウェアから呼び出して利用するための「窓口」や「接続口」のようなものです。WEB APIは、インターネット経由でこの機能を利用できるようにしたもので、「この住所の天気を教えて」とリクエストを送ると、「晴れ、気温25度」といったデータを返してくれます。

JSONとは?

JSON (JavaScript Object Notation) は、APIから返ってくるデータの形式として、現在最も広く使われている書式です。Excelユーザーにとっては、"key":"value" の組み合わせで書かれた、構造化されたメモ帳のデータのようなものとイメージすると分かりやすいです(例:"prefecture":"東京都")。Power QueryやVBAは、このJSON形式のテキストを解析して、必要なデータを取り出します。

APIキーとは?

APIを利用するための「許可証」や「パスワード」のようなものです。多くのAPIサービスでは、誰が・どのくらい利用しているかを把握するために、ユーザー登録後に個別のAPIキーを発行します。リクエストを送る際にこのキーを一緒に送信することで、APIの利用が許可されます。

WEB API 一覧

住所・地理情報

1. zipcloud (郵便番号検索)

郵便番号から住所を検索したり、逆に住所キーワードから郵便番号を検索できます。顧客リストやフォームでの住所入力補助に最適です。

  • APIキー: 不要
  • 商用利用: 可能
  • クレジット表記: 不要
  • 主な制限: 短時間での大量アクセスは禁止されています。
  • 公式サイト: zipcloud.ibsnet.co.jp

2. 国土地理院 API

住所やキーワードから緯度・経度を取得(ジオコーディング)できます。住所リストを地図上で可視化・エリア分析するのに役立ちます。

  • APIキー: 不要
  • 商用利用: 可能
  • クレジット表記: 必要
  • 表記例: 「国土地理院ウェブサイトの情報を利用」
  • 主な制限: サーバーに過度な負荷をかける利用は禁止されています。
  • 公式サイト: www.gsi.go.jp

ビジネス・企業情報

3. gBizINFO (Gビズインフォ)

法人の基本情報(企業名、所在地、業種)や一部の財務情報を取得できます。取引先マスタの構築・更新に活用できます。

  • APIキー: 不要 (推奨はされています)
  • 商用利用: 可能
  • クレジット表記: 必要
  • 表記例: 「出典:gBizINFO(経済産業省)」
  • 主な制限: サーバーに著しい負荷をかける行為は禁止されています。
  • 公式サイト: info.gbiz.go.jp

4. 国税庁 法人番号システム

法人番号をキーに、最新の商号・本店所在地などを取得できます。取引先情報の定期的な洗い替え(更新チェック)に有用です。

  • APIキー: 必要 (無料のアプリケーションIDを取得)
  • 商用利用: 可能
  • クレジット表記: 必要
  • 表記例: 「国税庁法人番号公表サイトの情報を利用」
  • 主な制限: 短時間における大量アクセスは禁止されています。
  • 公式サイト: www.houjin-bangou.nta.go.jp

カレンダー・金融

5. holidays-jp API

日本の祝日名と日付の一覧を取得できます。営業日カレンダーの自動作成や、稼働日数計算のロジックに最適です。

  • APIキー: 不要
  • 商用利用: 可能
  • クレジット表記: 不要
  • 主な制限: 特になし (データは年1回程度の更新)。
  • 公式サイト: holidays-jp.github.io

6. ExchangeRate-API

世界各国の通貨の最新為替レートを取得できます。請求書作成時の外貨建て金額を円建てに自動換算する際に役立ちます。

  • APIキー: 必要 (無料プランあり)
  • 商用利用: 可能 (無料プランの範囲内)
  • クレジット表記: 不要
  • 主な制限: 無料プランは月1,500リクエストまで。
  • 公式サイト: www.exchangerate-api.com

政府統計・学術情報

7. e-Stat (政府統計の総合窓口)

国勢調査(人口)、消費者物価指数など、日本政府の膨大な統計データを取得できます。市場分析レポートや経営ダッシュボードに最適です。

  • APIキー: 必要 (無料のアプリケーションIDを取得)
  • 商用利用: 可能
  • クレジット表記: 必要
  • 表記例: 「政府統計の総合窓口(e-Stat)のAPI機能により取得」
  • 主な制限: APIの種類により異なる (例: データ取得は1日10,000回まで)。
  • 公式サイト: www.e-stat.go.jp/api

8. RESAS API (地域経済分析システム)

地域経済に特化したデータ(人口流出入、観光客動向など)を取得できます。新規出店計画や商圏分析に役立ちます。

  • APIキー: 必要 (無料)
  • 商用利用: 可能
  • クレジット表記: 必要
  • 表記例: 「出典:RESAS(地域経済分析システム)」
  • 主な制限: サーバーに過度な負荷をかける利用は禁止されています。
  • 公式サイト: opendata.resas-portal.go.jp

9. J-STAGE API

日本の学術論文データベースから、論文タイトル、著者、概要などを検索・取得できます。競合他社の研究開発動向調査に有用です。

  • APIキー: 不要
  • 商用利用: 可能
  • クレジット表記: 推奨
  • 表記例: 「J-STAGEの情報を利用」
  • 主な制限: 短時間の過度なアクセスは制限される可能性あり。
  • 公式サイト: www.jstage.jst.go.jp

10. PubMed API

世界最大級の医学・生物学分野の文献データベースを検索できます。医療・製薬分野の研究開発での情報収集に最適です。

  • APIキー: 推奨 (キーなしだと低速)
  • 商用利用: 可能
  • クレジット表記: 推奨
  • 表記例: 「Data provided by the NLM」
  • 主な制限: 1秒あたりのリクエスト数制限あり(キー取得で緩和)。
  • 公式サイト: www.ncbi.nlm.nih.gov

ユーティリティ (便利ツール)

11. QRコード生成 (goqr.me)

URLやテキスト情報からQRコード画像を生成します。ExcelのIMAGE関数と組み合わせ、URLリストからQRを一括生成するのに便利です。

  • APIキー: 不要
  • 商用利用: 可能
  • クレジット表記: 不要
  • 主な制限: 短時間での大量アクセスは控える配慮が必要。
  • 公式サイト: goqr.me/api

12. T.ly (短縮URL)

長いURLを短いURLに変換します。キャンペーンURLなどを、SNS投稿やメールマガジン用に一括で短縮する処理に使えます。

  • APIキー: 必要 (無料プランあり)
  • 商用利用: 可能 (無料プランの範囲内)
  • クレジット表記: 不要
  • 主な制限: 無料プランは月2,500リクエストまで。
  • 公式サイト: t.ly

13. Yahoo! テキスト解析

日本語の文章を解析し、「ふりがな(ルビ)」を自動で取得します。氏名からフリガナ欄を自動入力する機能などに使えます。

  • APIキー: 必要 (無料のClient ID)
  • 商用利用: 可能
  • クレジット表記: 必要 (ロゴまたはテキスト)
  • 表記例: Web API by Yahoo! JAPAN
  • 主な制限: 1日あたり50,000回までのリクエスト制限。
  • 公式サイト: developer.yahoo.co.jp

14. ipinfo.io

IPアドレスから、そのIPが利用されている国、地域、都市名などを特定します。Webサイトのアクセスログ分析に有用です。

  • APIキー: 必要 (無料プランあり)
  • 商用利用: 可能 (無料プランの範囲内)
  • クレジット表記: 不要
  • 主な制限: 無料プランは月50,000リクエストまで。
  • 公式サイト: ipinfo.io

15. Microlink

URLからWebページのタイトル、説明文、メイン画像、スクリーンショットまで取得できます。URLリストの付加情報取得に便利です。

  • APIキー: 必要 (無料プランあり)
  • 商用利用: 可能 (無料プランの範囲内)
  • クレジット表記: 不要
  • 主な制限: 無料プランは1日100リクエストまで。
  • 公式サイト: microlink.io

商品情報・ニュース・画像

16. Rakuten Product Search

JANコード(バーコード)をキーに、楽天市場の商品情報(商品名、価格、画像URL)を取得できます。在庫管理や商品マスタ作成の自動化に非常に便利です。

  • APIキー: 必要 (無料のアプリID)
  • 商用利用: 可能
  • クレジット表記: 必要
  • 表記例: Supported by Rakuten Developers
  • 主な制限: リクエスト回数に制限があります。
  • 公式サイト: webservice.rakuten.co.jp

17. GNews API

キーワードやカテゴリを指定して、世界中のニュース記事(タイトル、概要、発行元URL)を検索・取得できます。業界動向の自動収集に役立ちます。

  • APIキー: 必要 (無料プランあり)
  • 商用利用: 可能 (無料プランの範囲内)
  • クレジット表記: 必要 (GNewsへのリンク)
  • 主な制限: 無料プランは1日100リクエストまで。
  • 公式サイト: gnews.io

18. Unsplash API

キーワードで高品質な著作権フリーの写真を検索し、画像URLを取得できます。レポートや資料に挿入するイメージ画像を自動で探すのに便利です。

  • APIキー: 必要 (無料)
  • 商用利用: 可能
  • クレジット表記: 推奨 (写真家とUnsplashへのリンク)
  • 主な制限: デモ利用では1時間に50リクエストまで (本番申請で緩和)。
  • 公式サイト: unsplash.com/developers

テスト・学習用

19. Random User Generator

架空の人物データ(氏名、住所、メール等)を生成します。DB設計時や帳票作成時のリアルなテストデータとして最適です。

  • APIキー: 不要
  • 商用利用: 可能 (テストデータとして)
  • クレジット表記: 不要
  • 主な制限: 過度な負荷は禁止。
  • 公式サイト: randomuser.me

20. JSONPlaceholder

APIの「練習台」として使えるサービス。ダミーのブログ記事、コメントなどを返します。VBAやPower Queryの練習に最適です。

  • APIキー: 不要
  • 商用利用: - (テスト用のため対象外)
  • クレジット表記: 不要
  • 主な制限: 特になし (学習目的の範囲内)。
  • 公式サイト: jsonplaceholder.typicode.com

APIを利用する上での注意点

APIキーの安全な管理

APIキーは、サービスを利用するための「パスワード」と同じです。VBAコードの中に直接書き込んだり、Excelシートのセルにそのまま入力したりすると、ファイルを他人に渡した際にキーが漏洩し、不正利用される危険性があります。

  • 設定用の非表示シートを作成する: Excelに「設定」シートなどを作成してAPIキーを記入し、そのシートを右クリックメニューから**「非表示」**にします。VBAからは `Worksheets("設定").Range("A1").Value` のように読み込めます。
  • 外部ファイルから読み込む (上級者向け): PCのドキュメントフォルダなどに作成したテキストファイルにキーを保存し、VBAでそのファイルを読み込んで利用する方法もあります。

リクエスト回数制限の遵守

多くの無料APIには、「1日あたり〇回まで」「1ヶ月に〇回まで」といったリクエスト回数制限が設けられています。特にVBAのループ処理などで意図せず大量のリクエストを送ってしまうと、制限を超えて一時的に利用できなくなることがあります。利用前に必ず制限回数を確認しましょう。

エラーハンドリングの重要性

APIは、ネットワークの問題やサーバーのメンテナンスなどで、一時的に応答しなくなることがあります。VBAでAPIを呼び出す際は、応答が正常(HTTPステータスコードが `200`)であるかを確認してからデータを処理する、といったエラー処理(エラーハンドリング)を組み込むことが、安定したツールを作る上で重要です。

Excel/Accessでの使い方

方法1: Power Query (Excel 2016以降)

コーディング不要でAPIの呼び出しからデータ整形まで自動化できます。Accessにはこの機能がないため、Excelで取得・整形してからAccessにインポートするのが簡単です。

【例:zipcloud (郵便番号検索) の使い方】

  1. Excelの [データ] タブ → [Webから] をクリックします。
  2. 表示されたダイアログにAPIのURLを入力します。
    例: https://zipcloud.ibsnet.co.jp/api/search?zipcode=1000001
  3. Power Query エディターが起動し、JSONデータが表示されます。
  4. `results` の横にある `List` をクリックし、リボンから [テーブルへの変換] を実行します。
  5. 列ヘッダー右の [展開ボタン] (↔) をクリックし、必要な列(address1, address2など)にチェックを入れてOKします。
  6. データが表形式に展開されたら、左上の [閉じて読み込む] をクリックすると、シートに出力されます。

方法2: VBA (Excel / Access)

VBAコードでより複雑な処理や、ボタン一つでの自動実行が可能になります。HTTPリクエストを送り、返ってきたJSON文字列を解析するのが基本の流れです。

【例:zipcloudのVBAコード】

※事前にVBAエディタの [ツール] > [参照設定] で「Microsoft XML, v6.0」にチェックが必要です。
※このサンプルは、解りやすい様にエラーハンドリングがない状態していますので、ご注意ください。

Sub GetAddressFromZipcode()
    Dim http As Object
    Dim url As String
    Dim zip As String
    Dim jsonResponse As String
    
    ' 1. HTTPリクエストオブジェクトを作成
    Set http = CreateObject("MSXML2.XMLHTTP")
    
    ' セルA1に入力された郵便番号を取得
    zip = ThisWorkbook.Worksheets("Sheet1").Range("A1").Value
    url = "https://zipcloud.ibsnet.co.jp/api/search?zipcode=" & zip

    ' 2. APIにリクエストを送信し、レスポンスを取得
    http.Open "GET", url, False
    http.Send
    jsonResponse = http.responseText
    
    ' 3. JSON文字列を解析して必要な情報を取り出す (簡易的な文字列操作)
    ' ※ 本格的な利用にはJsonConverterなどのライブラリ導入を推奨
    Dim address1 As String, address2 As String, address3 As String
    
    address1 = Split(Split(jsonResponse, """address1"":""")(1), """")(0)
    address2 = Split(Split(jsonResponse, """address2"":""")(1), """")(0)
    address3 = Split(Split(jsonResponse, """address3"":""")(1), """")(0)
    
    ' 4. セルB1に結果を出力
    ThisWorkbook.Worksheets("Sheet1").Range("B1").Value = address1 & address2 & address3
    
    Set http = Nothing
End Sub

ページ上部へ戻る