Google Sheetsでライブ為替レートを取得する
Apps Scriptのカスタム関数=FXRATE()でexchangerate.devを呼び出す。キャッシュとエラー処理つき。無料枠は月10,000コール、カード登録なし。
Google Sheetsでライブ為替レートを使うには、/v1/latest/{base}をキー付きAuthorizationヘッダーで呼び出す小さなApps Scriptのカスタム関数を貼り付け、任意のセルに=FXRATE("USD","EUR")と書く。無料キーで月10,000コールまでカバーされ、カード登録は不要。下の関数は10分間キャッシュし、実際に遭遇する2つのエラーを処理する。Sheetsで運用しているモデルやダッシュボードに、そのままライブFX入力を与えられる。
=FXRATE("USD","JPY")が使える — アドオンのインストールは不要。/v1/latest/{base}?symbols={quote}への1コールで、指定した通貨ペアが返る。Authorization: Bearer exr_live_...で渡す。CacheServiceが無料枠の内側に収めてくれる。無料APIキーを取得する
exchangerate.dev/signupで登録する。メール確認後、ダッシュボードにexr_live_で始まるキーが表示される。これをコピーして次にApps Scriptへ貼り付ける。無料枠は月10,000コール、カード不要。
シートからApps Scriptを開く
任意のGoogleスプレッドシートを開き、メニューから拡張機能 → Apps Scriptをクリックする。新しいタブが開き、既定のfunction myFunction() {}が入っている。その中身は削除する — 次のステップで置き換える。
FXRATE関数を貼り付ける
エディターの内容をこの関数で置き換える。exchangerate.devを呼び出し、CacheServiceで各ペアを10分間キャッシュし、実際に起こりうる2つのエラー(401と429)には読めるマーカーを返す。
任意のセルで=FXRATE()を使う
シートに戻り、空のセルに=FXRATE("USD","EUR")と入力する。1秒ほどで現在のレートが表示される。同じ関数はサポートされている任意のペアで動く — 2つの通貨コードを入れ替えるだけだ:
内部では、各コールがベース通貨、絞り込んだペア、そして2つの鮮度フィールド — sourceとmarket_session — を返すため、その数値がどれくらい新しいかが常に分かる:
llms.txtを公開しているので、ClaudeやCursor、ChatGPTがライブのスキーマを読んでこの関数を書いてくれる。「fromとtoの通貨を受け取ってexchangerate.devのライブレートを返す、10分キャッシュ付きのFXRATEというGoogle Sheetsカスタム関数を作って」と頼めばよい。詳しくはMCPガイドを参照。更新頻度と無料枠の収まり
Apps Scriptはカスタム関数をタイマーで自動再実行しない。定期更新したい場合は時間主導型のトリガーを追加する:Apps Script左側のレールでトリガー → トリガーを追加をクリックし、FXRATEを選び、ソースは時間主導型、分ベースのタイマーにする。10分キャッシュと十分な枠があるので、頻繁に触るブックでも安全に収まる:
- 月10,000コール、毎分12リクエスト、カード不要
CacheServiceが10分間はキャッシュ済みのレートを返すため、編集を繰り返してもコールは増えない- ペアの多いシートが毎分の上限に触れそうなら
CACHE_TTLを上げる /v1/latest、/v1/convert、/v1/range、/v1/{date}/{base}をカバー
noticeフィールドにその旨が記載されている。