レート表の取得はPower Query、金額の換算はセルの数式で行います。クエリは/v1/latest/USDを呼び出し、JSONを2列の表にして、ブックを開いたときやすべて更新を押したときに更新します。特定の日付のレートが必要なら、過去レート検索を使い、日付と出典を結果と一緒に保存してください。 換算式と編集できる例はExcel通貨換算ガイド(英語)にまとめています。特定の日付のレートは日本語の過去レート検索で確認し、日付と出典を結果と一緒に保存してください。
- Power Query MはMacとWindows両方のExcelに標準搭載、アドイン不要で、Windows専用でMacでは動かない
WEBSERVICE()も使わない。 /v1/latest/{base}への1コールで全レートを取得。ベースURLとRelativePathを分けて書くとスケジュール更新が壊れない。- キーは
Authorization: Bearer exr_live_...で渡す。Authorizationヘッダーを設定できないコネクタではX-API-Keyを使う。 - 無料枠は月5,000コール・毎分10リクエストで、カード登録は不要。
- レートはインディケーティブ値、モデル、分析、表示向けであり、取引の決済には使えない。
- 無料キーは月5,000回、毎分10リクエストまでです。カード登録は不要です。
無料APIキーを取得する
exchangerate.dev/signupで登録する。メール確認後、ダッシュボードにexr_live_で始まるキーが表示される。これをコピーして次のステップでクエリのパラメータに貼り付ける。無料枠は月5,000コール、カード不要。
Power Queryエディターを開く
Excelのリボンからデータ → データの取得 → Power Queryエディターの起動をクリックする。エディター内でホーム → 新しいソース → 空のクエリ、続いて表示 → 詳細エディターを開く。次のステップでこのボックスにMクエリを貼り付ける。
Mクエリを貼り付ける
エディターの内容を下のクエリで置き換えて完了をクリックし、右側のレールでクエリ名をFxRatesに変更する。RelativePath引数は省略できない、これがないとMicrosoft 365のスケジュール更新が資格情報エラーで失敗する。
// excel: Power Query M query "FxRates"// curl-equivalent: https://api.exchangerate.dev/v1/latest/USD// Private workbook only: do not share or export this query with a key.// Replace ApiKey with your exchangerate.dev key from /signuplet ApiKey = "exr_live_replace_with_your_key_here", Base = "USD", Source = Json.Document( Web.Contents( "https://api.exchangerate.dev", [ RelativePath = "v1/latest/" & Base, Timeout = #duration(0, 0, 0, 10), Headers = [#"Authorization" = "Bearer " & ApiKey] ] ) ), Rates = Record.ToTable(Source[rates]), Renamed = Table.RenameColumns(Rates, {{"Name", "currency"}, {"Value", "rate"}})in Renamedワークシートに読み込み、「匿名」を選ぶ
ホーム → 閉じて読み込むをクリックすると、通貨とレートの2列のテーブルが新しいシートに配置される。初回実行時にhttps://api.exchangerate.devへの認証方法を聞かれるので匿名を選ぶ。キーはURLではなくヘッダーで送られるため、匿名で正しい。Ctrl+Alt+F5でいつでも更新できる。
ベース通貨の変更・ペアの絞り込み
Baseを変えれば全レートのベース通貨が変わる。symbolsクエリを追加すれば必要なペアだけが返る、行数は減り、コール数は1回のまま:
// Re-base every rate to the euroBase = "EUR"// Return only the quote currencies you need (one call, fewer rows)RelativePath = "v1/latest/USD",Query = [symbols = "EUR,GBP,JPY"]// One pair, rate calculated for youRelativePath = "v1/convert/USD/JPY/1" // read Source[rate]exchangerate.devはMCPサーバーとllms.txtを公開しているので、ClaudeやCursor、ChatGPTがライブのスキーマを読んでこのクエリを書いてくれる。「exchangerate.devからUSDレートを取得するExcel Power Query Mクエリを、キーをAuthorizationヘッダーに入れ、更新が動くようRelativePathを使って書いて」と頼めばよい。詳しくはMCPガイドを参照。
更新頻度と無料枠の収まり
Excelは自動ではポーリングしない。テーブルはブックを開いたとき、すべて更新をクリックしたとき、またはデータ → クエリと接続 → プロパティで定期更新を設定したときに更新される。計算すると無料枠に余裕で収まる:
- 月5,000コール、毎分10リクエスト、カード不要
- 一般的なモデルは1日数コール程度(起動時+数回の手動更新)
- 市場時間中に5分間隔の自動更新をしても1日約100コール
/v1/latest、/v1/convert、/v1/range、/v1/{date}/{base}をカバー
| コード | 症状 | 対処 |
|---|---|---|
| 401 | DataSource.Error: 401 | キーが未設定か無効。ApiKeyに貼り直し、データ → データの取得 → データソース設定でapi.exchangerate.devの保存済み資格情報を削除する。 |
| 429 | 429 Too Many Requests | 毎分10リクエストの上限を超えた。クエリ間で更新をずらすか、/pricingで上位プランへ。 |
| — | Excelが資格情報を何度も要求する | RelativePathを使わずフルURLに接続している。上記のベースURL分割クエリをコピーし、匿名を選ぶ。 |
これらのレートはモデル、分析、表示向けに公開されている。ディーリングクォートではなく、取引や送金の決済に使ってはならない。すべてのレスポンスのnoticeフィールドにその旨が記載されている。
キーなしで/v1/latest/USDを呼び出し、Mクエリが解析するのと同じ構造のJSONを確認できる。問題なければ、無料キーでブックに月5,000コールの専用クォータが付く、カード不要。