Tutorial/Excelクイックスタート

Excelで為替レートを取得する方法(Power Query)

MクエリをExcelに貼り付け、更新できる為替レート表を作る。MacとWindowsの両方で動き、アドインは不要。無料枠でも十分に試せる。

ERexchangerate.dev·Jun 29, 2026·5分で読了

Excelで為替レートを扱うなら、WEBSERVICE()よりPower Queryの方が扱いやすい。下のクエリは/v1/latest/USDを呼び、JSONを2列の表に変換する。ブックを開いたときやすべて更新を押したときに値を取り直せるので、DCF、ヘッジ管理表、複数通貨のP&Lに古いレートを貼り付けたままにせずに済む。 JPYを含む表を作る場合は、下のクエリの対象通貨にJPYを指定します。Geminiに作成を手伝ってもらう場合は、GeminiでExcelの為替トラッカーを作るのプロンプトと参考クエリを使えます。Geminiはコードを作成し、実際の取得と更新はExcelが実行します。APIキーをチャットに貼り付けないでください。

Key points
Power Query MはMacとWindows両方のExcelに標準搭載 — アドイン不要で、Windows専用でMacでは動かないWEBSERVICE()も使わない。
/v1/latest/{base}への1コールで全レートを取得。ベースURLとRelativePathを分けて書くとスケジュール更新が壊れない。
キーはAuthorization: Bearer exr_live_...で渡す。Authorizationヘッダーを設定できないコネクタではX-API-Keyを使う。
無料枠は月10,000コール・毎分12リクエストで、カード登録は不要。
レートはインディケーティブ値 — モデル、分析、表示向けであり、取引の決済には使えない。

無料APIキーを取得する

exchangerate.dev/signupで登録する。メール確認後、ダッシュボードにexr_live_で始まるキーが表示される。これをコピーして次のステップでクエリのパラメータに貼り付ける。無料枠は月10,000コール、カード不要。

Power Queryエディターを開く

Excelのリボンからデータ → データの取得 → Power Queryエディターの起動をクリックする。エディター内でホーム → 新しいソース → 空のクエリ、続いて表示 → 詳細エディターを開く。次のステップでこのボックスにMクエリを貼り付ける。

Mクエリを貼り付ける

エディターの内容を下のクエリで置き換えて完了をクリックし、右側のレールでクエリ名をFxRatesに変更する。RelativePath引数は省略できない — これがないとMicrosoft 365のスケジュール更新が資格情報エラーで失敗する。

Power Query · Advanced Editorcopy
// 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 /signup
let
    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回のまま:

Power Query · variantscopy
// Re-base every rate to the euro
Base = "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 you
RelativePath = "v1/convert/USD/JPY/1"   // read Source[rate]
AIアシスタントと一緒に作るなら
exchangerate.devはMCPサーバーとllms.txtを公開しているので、ClaudeやCursor、ChatGPTがライブのスキーマを読んでこのクエリを書いてくれる。「exchangerate.devからUSDレートを取得するExcel Power Query Mクエリを、キーをAuthorizationヘッダーに入れ、更新が動くようRelativePathを使って書いて」と頼めばよい。詳しくはMCPガイドを参照。

更新頻度と無料枠の収まり

Excelは自動ではポーリングしない。テーブルはブックを開いたとき、すべて更新をクリックしたとき、またはデータ → クエリと接続 → プロパティで定期更新を設定したときに更新される。計算すると無料枠に余裕で収まる:

  • 月10,000コール、毎分12リクエスト、カード不要
  • 一般的なモデルは1日数コール程度(起動時+数回の手動更新)
  • 市場時間中に5分間隔の自動更新をしても1日約100コール
  • /v1/latest/v1/convert/v1/range/v1/{date}/{base}をカバー
コード症状対処
401DataSource.Error: 401キーが未設定か無効。ApiKeyに貼り直し、データ → データの取得 → データソース設定でapi.exchangerate.devの保存済み資格情報を削除する。
429429 Too Many Requests毎分12リクエストの上限を超えた。クエリ間で更新をずらすか、/pricingで上位プランへ。
Excelが資格情報を何度も要求するRelativePathを使わずフルURLに接続している。上記のベースURL分割クエリをコピーし、匿名を選ぶ。
インディケーティブレート — 決済には使えない
これらのレートはモデル、分析、表示向けに公開されている。ディーリングクォートではなく、取引や送金の決済に使ってはならない。すべてのレスポンスのnoticeフィールドにその旨が記載されている。
クエリを組む前にエンドポイントを試す
キーなしで/v1/latest/USDを呼び出し、Mクエリが解析するのと同じ構造のJSONを確認できる。問題なければ、無料キーでブックに月10,000コールの専用クォータが付く — カード不要。
ER
exchangerate.dev
FXデータを扱う開発者向けの統合ガイド。

関連記事

TutorialGoogle Sheetsでライブ為替レートを取得する読む TutorialJavaScriptとNode.jsによる通貨換算読む TutorialPythonで為替レートを取得する方法読む
他の比較Fixer vs exchangerate.devOpen Exchange Rates vs exchangerate.devCurrencylayer vs exchangerate.dev
学ぶReading source and market_session in your pipelineIndicative vs executable FX rates: what a rates API actually gives youECB参照レートの解説
ライブレートEUR/USDGBP/USDUSD/JPY