はじめに|Pythonで為替レートを自動取得するってどういうこと?
「毎日の為替レートをチェックして、表にまとめるのが面倒…」
「手作業じゃなく、自動でレートを取り込めたらラクなのに…」
そんな悩み、ありませんか?
実は、Pythonを使えば、最新の為替レートをWebから取得して、Excelファイルに自動で書き込むことができるんです!
この方法は、経理・財務・輸入業務などで外国通貨を扱う方にとって、非常に役立ちます。
しかも、今回は**「API」という仕組みを使って為替レートのデータを取得**します。プログラミング初心者にとっても、APIの基本的な使い方を体験できる絶好のチャンスです。
さらに、取得したデータを Excelファイルに自動で書き込むので、「スプレッドシート作業を自動化したい」という方にもピッタリ!
このページでは、以下のことをやさしく解説していきます:
- Pythonの環境構築とライブラリの準備
- 為替APIの使い方と取得方法
- Excelファイルへの自動書き出し
- 実務にも使えるコードの全体像
コードの意味もしっかり解説するので、「なんとなくコピペするだけ」にならず、**「理解しながら学べる」**記事を目指しています!
さっそく、Pythonで為替レートの自動取得を始めてみましょう!
1. Pythonで為替データを扱うメリット
Pythonは、**「データを集めて、加工して、出力する」**という一連の流れを、とてもシンプルに書けるプログラミング言語です。
この特性が、為替レートの自動取得&Excelへの書き出しという作業にピッタリなんです。
ここでは、Pythonを使うことで得られる具体的なメリットをいくつか紹介します。
✅ 毎日の作業が自動化できる
たとえば「毎朝、為替レートを調べて、Excelに入力する」…こんなルーチン作業、ありませんか?
Pythonを使えば、その作業をボタン1つ、あるいは時間指定で自動化できます。人の手を使わないので、入力ミスも防げて一石二鳥!
✅ 無料APIを活用して最新データを取得
多くの為替レート提供サイトでは、「API」という仕組みでレート情報を提供しています。
Pythonでは requests というライブラリを使うことで、数行のコードでAPIからデータを取得することが可能です。
しかも、APIの多くは無料プランを用意しており、登録不要で使えるものもあります(例:exchangerate.host など)。
✅ 取得したデータをそのままExcelに保存
Pythonには openpyxl というライブラリがあり、Excelファイル(.xlsx)の作成・編集が自由自在。
今回のように、「為替レートを日付とともに記録する表」を自動で作るのも簡単です。
✅ 業務でも通用するスキルが身につく
APIの使い方やExcel連携の知識は、業務で使える実践的なスキルです。
特に、財務・経理・データ分析・エンジニア職などでは、こうしたスキルが評価される場面も多くなっています。

「プログラミングって難しそう…」という方もご安心ください。
このあとの手順では、一つひとつの操作をやさしく丁寧に解説していきます。
次は、Python環境の準備と必要なライブラリのインストールから始めましょう!
2. 必要な環境とライブラリ
Pythonで為替レートを取得してExcelに書き込むには、準備がとても大切です。
ここでは、実際にプログラムを書く前にやっておきたい2つの準備――仮想環境の作成とライブラリのインストールについて説明します。
🔧 Python仮想環境の作成
まずは、作業ごとに独立したPython環境をつくっておきましょう。これを**「仮想環境」**といいます。
✅ なぜ仮想環境を使うの?
Pythonにはたくさんのライブラリがありますが、全部をごちゃまぜに使っていると、
「どのツールがどのライブラリを使っていたっけ?」
「他のツールとバージョンがぶつかって動かない…」
なんてことが起きやすくなります。
仮想環境を使えば、1つのツール=1つの専用環境として管理できるので安心です。
✅ 仮想環境の作り方(Windows/Mac共通)
ターミナル(またはコマンドプロンプト)で以下のコマンドを入力します:
python -m venv venv
すると、venv という名前の仮想環境が作成されます。
✅ 仮想環境の起動方法
- Windowsの場合:
venv\Scripts\activate
- Mac/Linuxの場合:
source venv/bin/activate
うまくいくと、ターミナルの先頭に (venv) と表示されます。これで仮想環境の中に入った状態です!
📦 ライブラリのインストール
今回使うライブラリは以下の2つです:
| ライブラリ名 | 用途 |
|---|---|
requests | 為替レートAPIからデータを取得する |
openpyxl | Excelファイルの読み書きを行う |
✅ インストールコマンド(仮想環境の中で実行)
pip install requests openpyxl
✅ ライブラリのインポート方法
Pythonコードの最初に以下を記述して、ライブラリを使えるようにします:
import requests
from openpyxl import Workbook
import openpyxl とする方法もありますが、今回は Workbook クラスだけ使うので from openpyxl import Workbook の方がシンプルです。

これで準備完了!
次はいよいよ「APIを使って為替レートを取得する」ステップに進みましょう!
3. 為替APIの仕組みとエンドポイント設定
いよいよここから、為替レートのデータを取得するための準備に入ります。
そのカギを握るのが、「API」と呼ばれる仕組みです。
🌐 APIってなに?
APIとは「Application Programming Interface(アプリケーション・プログラミング・インターフェース)」の略です。
……ちょっと難しく聞こえますが、ざっくり言うと、
「他のサービスから情報を自動で受け取るための窓口」
と考えてください。
たとえば、天気情報・ニュース・為替レート・株価などを自分のプログラムに取り込むには、
その情報を提供してくれる「APIのURL」にアクセスして、機械が読み取れる形式でデータを受け取るのが一般的です。
💱 為替APIとは?
今回使う為替APIは「exchangerate.host」という、無料で使える便利なAPIサービスです。
アクセスするURLの例:
https://api.exchangerate.host/latest
このURLにアクセスすることで、**「今日の為替レート(EURを基準)」**がJSON形式で返ってきます。
📌 エンドポイントって?
APIで使われる「エンドポイント」とは、情報を取得するためのURLのことです。
サービスごとに、さまざまなエンドポイントが用意されています。
たとえば:
| エンドポイント | 内容 |
|---|---|
/latest | 最新の為替レート |
/timeseries | 過去の為替レート履歴 |
/convert | 通貨変換(例:USD → JPY) |
今回はもっともシンプルな 「最新のレート」を取得する /latest を使います。
✅ 通貨を指定したい場合は?
URLの末尾にパラメータをつけて、取得したい通貨を絞り込むことも可能です。
たとえば、「USD(米ドル)を基準に、JPY(日本円)のレートを取得したい」なら、こんなURLになります:
https://api.exchangerate.host/latest?base=USD&symbols=JPY
このように、**クエリパラメータ(?〜)**を使って情報をカスタマイズできるのがAPIの面白さです!
ここまでの内容をまとめると、次のようなコードで為替データが取得できます:
import requests
url = "https://api.exchangerate.host/latest?base=USD"
response = requests.get(url)
data = response.json()
print(data)
このコードを実行すると、USDを基準とした通貨レートの一覧が表示されます。

次は、このAPIから取得したデータを**どのようにPythonで扱っていくのか?**を見ていきましょう!
4. APIから為替レートを取得するPythonコード
ここからは、いよいよ実際に為替レートのデータをPythonで取得するコードを書いていきます!
今回は「USD(米ドル)」を基準に、複数の通貨レートを取得する例で進めます。
🧪 まずはAPIにアクセスしてみよう!
以下のコードをPythonファイルに書いてみてください:
import requests
# APIのURL(USDを基準)
url = "https://api.exchangerate.host/latest?base=USD"
# データ取得
response = requests.get(url)
# JSON形式でデータを取り出す
data = response.json()
# 内容を確認してみよう
print(data)
🔍 解説:このコードで何をしているの?
| 行番号 | 処理内容 |
|---|---|
| 1行目 | requests ライブラリを読み込んで、Webからデータを取得できるようにします。 |
| 4行目 | APIのエンドポイントURLを設定します。ここでは「USDを基準にした最新の為替レート」を取得しています。 |
| 7行目 | requests.get() で指定したURLにアクセスし、Webからデータを取得します。 |
| 10行目 | response.json() で、取得したデータをPythonの辞書(dict)型に変換します。 |
| 13行目 | print()で、実際に取得できたデータを確認しています。 |
💡 JSON形式のデータとは?
APIから取得できるデータは、基本的に**「JSON形式」**です。
これは「キー(名前)と値(データ)」がセットになった、人間にも読めるシンプルな形式です。
例として、こんな形で表示されるはずです:
{
"base": "USD",
"date": "2025-06-18",
"rates": {
"JPY": 157.35,
"EUR": 0.91,
"GBP": 0.78,
...
}
}
この中の "rates" の部分が重要で、ここに各通貨のレートが格納されています。
✅ 必要な情報だけ取り出すには?
JSONデータは辞書型なので、Pythonの辞書のようにキー指定で中身を取り出せます。
たとえば、すべての通貨レートを取得したい場合は次のように書きます:
for currency, rate in data["rates"].items():
print(f"{currency}: {rate}")
このコードを実行すると、次のような出力になります:
JPY: 157.35
EUR: 0.91
GBP: 0.78
...
これで、APIから取得した為替データをPythonで自由に扱えるようになりました!

次はいよいよ、取得した為替レートをExcelファイルに書き込む手順を解説していきます!
5. 取得したデータをExcelに書き込む
APIから取得した為替レートのデータを、次はExcelファイルに書き込んで保存してみましょう。
ここでは openpyxl ライブラリを使って、以下のような作業を行います:
- 新しいExcelファイルを作成
- ワークシートを準備
- 為替レートのデータを1行ずつ書き込む
- ファイルとして保存
📘 Excelファイルを作るには?(Workbook)
まずはExcelファイルの「本体」となる**ワークブック(Workbook)**を作ります。以下のコードを追記してみましょう:
from openpyxl import Workbook
# 新しいExcelファイルを作成
wb = Workbook()
# アクティブなシートを取得
ws = wb.active
# シートの名前を変更(任意)
ws.title = "Exchange Rates"
ここまでで、空っぽのExcelファイルとシートが1枚できた状態です。
🏷️ ヘッダーを追加する(append)
次に、**列のタイトル(ヘッダー)**を書き込みます。
# ヘッダーを追加
ws.append(["通貨コード", "為替レート"])
これで、1行目に「通貨コード」「為替レート」という見出しが入りました。
🔄 通貨とレートを1行ずつ追加(forループ+append)
ここからは、前のステップで取得した data["rates"] をfor文でループして、1行ずつExcelに追加していきます:
# 取得したレート情報を書き込む
for currency, rate in data["rates"].items():
ws.append([currency, rate])
これで、各通貨コード(例: USD, JPY, EUR)と、その為替レートが行ごとにExcelファイルに追加されていきます。
✅ append()とは?
append() は、Excelファイルに行単位でデータを追加するためのメソッドです。
ws.append(["USD", 1.00]) # 「USD | 1.00」という行が追加される
リストの形で渡すと、そのまま左から右に順番に書き込まれます。
💡 補足:複数回appendすれば、表形式になる
ws.append(["通貨", "レート"])
ws.append(["USD", 1.00])
ws.append(["JPY", 157.35])
ws.append(["EUR", 0.91])
こんな感じで書き込むと、Excelでは以下のように見えます:
| 通貨 | レート |
|---|---|
| USD | 1.00 |
| JPY | 157.35 |
| EUR | 0.91 |

これで、為替レートデータをExcelに整然と出力する準備が整いました!
6. Excelファイルの保存と出力の確認
ここまでで、為替レートのデータをExcelのワークブック(Workbook)に書き込む処理が完成しました。
最後の仕上げは、作成したExcelファイルを保存して、ユーザーに完了を伝える出力メッセージを表示することです。
💾 Excelファイルを保存する(.save())
Excelファイルを保存するには、以下のように .save() メソッドを使います。
# ファイル名を指定して保存
wb.save("exchange_rates.xlsx")
このコードを実行すると、スクリプトを実行したフォルダに「exchange_rates.xlsx」ファイルが生成されます。
✅ ファイル名は自由に変えてOKですが、拡張子 .xlsx を忘れずにつけましょう!
✅ 保存できたかどうかを知らせるメッセージ
プログラムの最後に、処理が正常に終わったことをユーザーに知らせる出力メッセージを加えておくと、親切で実務的です。
print("為替レートのExcelファイルが保存されました!")
さらに、ファイル名や日付を表示しておくと、ログとしても便利です。
from datetime import datetime
today = datetime.now().strftime("%Y-%m-%d")
print(f"[{today}] exchange_rates.xlsx に書き出しが完了しました。")
🔁 全体の流れをまとめると…
これで、次のような流れが完成しました:
- APIで為替レートを取得
- データをExcelに書き込み
.xlsxファイルとして保存- ユーザーにメッセージで通知
📂 実行後の確認方法
スクリプトを実行した後は、次の点を確認してみてください:
- フォルダ内に
exchange_rates.xlsxファイルがあるか? - 開いてみると、通貨コードとレートの一覧が正しく書かれているか?
- 保存メッセージがターミナルに表示されたか?

問題がなければ、Pythonでの為替レート取得&Excel出力スクリプトが無事完成です!
7. おまけ:日付や時間も一緒に書き込む(発展応用)
ここまでで、為替レートの一覧をExcelに書き込む基本的なスクリプトは完成しました。
でも、**「このレート、いつ取得したデータだろう?」**と後から見返すこともありますよね。
そこでおすすめなのが、日付や時刻も一緒にExcelに記録しておく方法です。
Pythonの datetime モジュールを使えば、とても簡単に追加できます。
🕒 現在の日付・時刻を取得するには?
以下のように、datetime.now() を使って、今の日時を取得できます。
from datetime import datetime
# 現在日時を取得(例:2025-06-18 15:42:00)
now = datetime.now()
# 日付のみ取り出す(例:2025-06-18)
date_str = now.strftime("%Y-%m-%d")
# 日時付き(例:2025-06-18 15:42:00)
datetime_str = now.strftime("%Y-%m-%d %H:%M:%S")
strftime() を使うことで、表示フォーマットを好きな形に変換できます。
📝 Excelの表に日付列を追加するには?
「通貨コード」「レート」だけでなく、「取得日付」も一緒に書き込めるようにしてみましょう。
✅ ヘッダーを修正:
ws.append(["通貨コード", "為替レート", "取得日"])
✅ データの書き込み部分を変更:
for currency, rate in data["rates"].items():
ws.append([currency, rate, date_str])
これで、次のような表がExcelに記録されます:
| 通貨コード | 為替レート | 取得日 |
|---|---|---|
| USD | 1.00 | 2025-06-18 |
| JPY | 157.35 | 2025-06-18 |
| EUR | 0.91 | 2025-06-18 |
📈 毎日データを記録するログとしても使える!
この書き方は、毎日為替レートを記録するような自動スクリプトにも応用できます。
日付を残しておけば、あとで時系列でグラフを作ることもできますし、データの変化を追うのにも便利です!
✅ 補足:時間まで記録したい場合は?
日付だけでなく、時間も記録したいなら datetime_str を使えばOKです:
ws.append(["通貨コード", "為替レート", "取得日時"])
for currency, rate in data["rates"].items():
ws.append([currency, rate, datetime_str])

これで、「いつのデータか」をしっかり管理できる、実用的な為替レート記録ツールが完成しました!
8. まとめ
今回は、Pythonを使ってWebから為替レートを自動取得し、Excelに書き込む方法を解説してきました。
実際にやってみると、たった数十行のコードで、
- 最新の為替レートを無料APIから取得
- Excelファイルに整形して出力
- 日付付きの記録も可能
といった、実務でも使える便利なツールが作れてしまいます。
💡 この記事で学べたこと
| ステップ | 内容 |
|---|---|
| 環境構築 | 仮想環境の作成とライブラリのインストール(requests / openpyxl) |
| API活用 | 為替API(exchangerate.host)からのデータ取得方法 |
| Excel操作 | openpyxlによるワークブック生成・データ書き込み |
| 応用 | 日付や時間の記録でログ管理にも対応可能 |
📌 自動化の一歩として最適なテーマ!
「手作業でやっていた作業をPythonで効率化したい」
「APIの扱い方を基礎から学びたい」
「Excelとの連携方法を実践したい」
そんな方にとって、今回の内容はまさに初めの一歩にピッタリのテーマだったのではないでしょうか?

Pythonはデータの取得や加工、出力に強く、業務の自動化にも非常に向いています。
ぜひこの記事を参考に、あなた自身のアイデアでいろいろな自動ツールを作ってみてくださいね!
🔗 あわせて読みたい
🧮 データの扱いに強くなろう!
- 【Python入門】YAMLファイルの書き方と使い方|設定ファイルの操作をわかりやすく解説!
API連携やツール構築でよく使われるYAML形式について、基本から応用までを解説しています。 - Pythonでグラフを描く!Matplotlibの使い方を初心者向けにやさしく解説
取得した為替データをグラフで可視化したい人におすすめです。
🧰 API・ファイル操作の基礎固めに!
- 【Python入門】Gmail APIでメール送受信&添付ファイルを操作する方法をやさしく解説!
APIの扱いをもっと深く理解したい人向けに、Gmail APIの使い方も学べます。 - 【Win/Mac対応】Pythonスクリプトをexe化!PyInstallerで実行ファイルを作る方法をやさしく解説
今回の為替ツールを配布用のアプリにしたい場合に便利です。
💡 自動化スキルをレベルアップ!
Pythonでライブラリを一括インストールする方法|requirements.txtの使い方をやさしく解説!
仮想環境の再現や配布時に欠かせない設定ファイルの使い方をマスターできます。
よくある質問(Q&A)
- Q為替レートのAPIは無料で使えるの?
- A
はい、無料で使えるAPIもあります。たとえば exchangerate.host はAPIキー不要で利用可能です。商用利用や高頻度アクセスには有料プランが必要な場合もあります。
- Qどの通貨の為替レートが取得できますか?
- A
APIによりますが、主要な通貨(USD、EUR、JPY、GBPなど)に加えて、100種類以上の通貨をサポートしていることが多いです。
symbolsパラメータで指定することで特定の通貨だけを取得することもできます。
- Qデータ取得のタイミングを自動化できますか?
- A
可能です。Windowsの「タスクスケジューラ」や、Mac/Linuxの「cron」を使えば、毎日決まった時間にスクリプトを実行して最新の為替レートを取得できます。







※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。