Claude Codeに頼んだら為替レートが毎朝Excelに自動入力されるようになった話

為替レートを毎朝Excelに自動入力したくてClaude Codeに頼んだら30行のコードで実現しました。WebAPI連携コードをClaude Codeが生成するプロンプト実例5個以上付きで完全解説。

この記事をシェア:
目次 クリックで開く

「為替レートを毎朝Excelに手入力している」という悩みをClaude Codeのチャット画面に打ち込んだら、わずか30行のPythonコードで完全自動化が実現しました。Claude CodeにWebAPI連携コードを生成させる方法を、実際に入力したプロンプト5個以上とともに完全公開します。株価・Google Analytics・天気予報など複数APIへの応用例も紹介します。

Claude Codeが生成したWebAPI連携スクリプトの実行デモ

▲ Claude Codeが生成したスクリプトの実際の実行結果(為替レートがExcelに自動書き込みされる様子)

1. 「毎朝15分、為替レートを手入力していた」という現実

輸出入を行う商社に勤める私は、毎朝出社するとまずブラウザで銀行のウェブサイトを開き、USD/JPY・EUR/JPY・GBP/JPY・CNY/JPYの4通貨ペアのレートを確認してExcelの見積書テンプレートに手入力していました。この作業は約15分かかり、時々入力ミスが起きて見積もり金額が狂うこともありました。

「APIとかPythonで自動化できるらしい」と聞いていましたが、プログラミング経験はほぼゼロ。そこでClaude Codeを使ってみました。Claude Codeはチャット画面に日本語で要件を打ち込むだけで、Pythonコードを自動生成してくれるAIコーディングアシスタントです。

データ種別 手動収集(従来) Claude Code × API自動化(改善後)
為替レート 毎朝ウェブで確認・手入力(約15分) 毎朝9時自動更新(0分)
株価データ CSV手動ダウンロード・整形(約30分) Claude Code生成コードで自動取得(0分)
Google Analytics 管理画面を確認してコピペ(約45分) Claude Codeが生成したAPIスクリプトで自動出力(0分)
天気予報 天気サイトを手動確認(約10分) Claude Code × 気象API自動取得(0分)
広告パフォーマンス 各媒体管理画面を個別確認(約60分) Claude Code生成コードで統合自動集計(0分)

2. Claude Codeへの最初のプロンプト ——「為替レートを自動取得したい」

私はClaude Codeのチャット画面を開き、以下のプロンプトをそのまま入力しました。技術的な言葉を使わなくても、Claude Codeは要件を正確に理解してコードを生成してくれます。

プロンプト例 1

私がClaude Codeに入力したプロンプト毎朝、USD/JPY・EUR/JPY・GBP/JPY・CNY/JPYの為替レートを
Excelファイル(forex_rates.xlsx)に自動で書き込むPythonスクリプトを作ってください。

・無料のAPIを使いたいです
・実行するたびに新しい行にデータを追記していきたいです
・ヘッダー行には「更新日時」「USD/JPY」「EUR/JPY」「GBP/JPY」「CNY/JPY」と入れてください
・最新行のセルを緑色でハイライトしてください

Claude Codeはこのプロンプトを受け取り、無料で使えるExchangeRate-APIを選定し、30行ほどのPythonコードを即座に生成してくれました。Claude Codeが出力したコードには、API呼び出し・データ整形・Excelへの書き込み・セルの色付けまで全て含まれていました。

Claude Codeからの回答(要約):
「ExchangeRate-API(無料プランで月1,500リクエスト)を使ったスクリプトを生成しました。まずAPIキーを無料登録して環境変数に設定してください。実行方法も説明します。」

3. Claude Codeが生成した為替レート自動取得コード

以下がClaude Codeが生成した完全なPythonスクリプトです。私はこのコードをコピーして実行するだけで、為替レートがExcelに自動書き込みされました。

python — forex_to_excel.py(Claude Code生成)
# Claude Codeが生成したコード: 為替レート自動取得 → Excel書き込み
import os
import requests
import openpyxl
from openpyxl.styles import PatternFill, Font, Alignment
from datetime import datetime

# ── 設定 ──────────────────────────────────────────────
API_KEY   = os.environ["EXCHANGE_RATE_API_KEY"]   # 環境変数から取得
BASE_URL  = f"https://v6.exchangerate-api.com/v6/{API_KEY}/latest/USD"
TARGET    = ["JPY", "EUR", "GBP", "CNY"]
XLSX_PATH = "forex_rates.xlsx"

def fetch_rates() -> dict:
    """ExchangeRate-API から最新レートを取得(USD基準)"""
    res = requests.get(BASE_URL, timeout=10)
    res.raise_for_status()
    all_rates = res.json()["conversion_rates"]
    # USD/JPY は直接取得、EUR/JPY は JPY÷EUR で計算
    return {
        "USD/JPY": round(all_rates["JPY"], 2),
        "EUR/JPY": round(all_rates["JPY"] / all_rates["EUR"], 2),
        "GBP/JPY": round(all_rates["JPY"] / all_rates["GBP"], 2),
        "CNY/JPY": round(all_rates["JPY"] / all_rates["CNY"], 2),
    }

def write_to_excel(rates: dict) -> None:
    """取得したレートをExcelに追記する"""
    try:
        wb = openpyxl.load_workbook(XLSX_PATH)
        ws = wb["為替レート"]
    except FileNotFoundError:
        wb = openpyxl.Workbook()
        ws = wb.active
        ws.title = "為替レート"
        # ヘッダー行を作成(初回のみ)
        headers = ["更新日時", "USD/JPY", "EUR/JPY", "GBP/JPY", "CNY/JPY"]
        ws.append(headers)
        green_fill = PatternFill("solid", fgColor="107C41")
        for cell in ws[1]:
            cell.fill = green_fill
            cell.font = Font(color="FFFFFF", bold=True)
            cell.alignment = Alignment(horizontal="center")

    # データ行を追記
    now = datetime.now().strftime("%Y-%m-%d %H:%M")
    row = [now, rates["USD/JPY"], rates["EUR/JPY"], rates["GBP/JPY"], rates["CNY/JPY"]]
    ws.append(row)

    # 最新行を薄緑でハイライト
    last_row = ws.max_row
    light_green = PatternFill("solid", fgColor="D1FAE5")
    for col in range(1, 6):
        ws.cell(last_row, col).fill = light_green

    wb.save(XLSX_PATH)
    print(f"[{now}] 為替レートをExcelに書き込みました")
    for pair, rate in rates.items():
        print(f"  {pair}: {rate}")

if __name__ == "__main__":
    rates = fetch_rates()
    write_to_excel(rates)

実際に実行したときのターミナル出力です。

[2026-04-25 09:00] 為替レートをExcelに書き込みました
  USD/JPY: 154.32
  EUR/JPY: 164.87
  GBP/JPY: 193.45
  CNY/JPY: 21.23

Claude Codeを使った結果

  • コード生成にかかった時間: 約2分
    Claude CodeのAPI取得→Excel自動化結果(プロンプト入力からコード出力まで)
  • 従来の手作業15分が: 完全ゼロ
  • スクリプトの行数: 約30行(Claude Codeが自動生成)
  • 入力ミスによる見積もり誤り: 月ゼロ件(自動化後)

4. 「毎朝9時に自動実行したい」とClaude Codeに伝えたら

手動でスクリプトを実行するのも面倒なので、毎朝9時に自動で動かしたいとClaude Codeに追加で依頼しました。Claude CodeはWindowsタスクスケジューラーの設定方法まで教えてくれました。

プロンプト例 2

私がClaude Codeに入力したプロンプトこのスクリプトを毎朝9時に自動実行したいです。
Windowsを使っています。
タスクスケジューラーに登録する方法と、
ログファイルに実行結果を記録する機能もコードに追加してください。
Claude Codeからの回答(要約):
「スクリプトにloggingモジュールによるログ記録機能を追加しました。Windowsタスクスケジューラーへの登録手順は以下のとおりです。スタートメニュー → タスクスケジューラ → 基本タスクの作成 → トリガー「毎日 09:00」→ 操作「プログラムの開始: python C:\scripts\forex_to_excel.py」と設定してください。」
python — ログ記録機能付き版(Claude Code追加生成)
import logging
from pathlib import Path

# Claude Codeが追加したログ設定
LOG_PATH = Path("logs/forex_update.log")
LOG_PATH.parent.mkdir(exist_ok=True)

logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s [%(levelname)s] %(message)s",
    handlers=[
        logging.FileHandler(LOG_PATH, encoding="utf-8"),
        logging.StreamHandler()   # コンソールにも出力
    ]
)
log = logging.getLogger(__name__)

def main():
    log.info("為替レート取得開始")
    try:
        rates = fetch_rates()
        write_to_excel(rates)
        log.info(f"完了: {rates}")
    except Exception as e:
        log.error(f"エラー発生: {e}")
        raise

5. 株価データの自動取得もClaude Codeに頼んだ

為替レートの自動化がうまくいったので、次は株価データもClaude Codeに自動取得させることにしました。Claude Codeに「yfinanceライブラリを使って株価をExcelに書き込んで」と伝えると、複数銘柄の株価を取得してシート別に出力するコードを生成してくれました。

プロンプト例 3

私がClaude Codeに入力したプロンプトトヨタ(7203.T)・ソフトバンク(9984.T)・Apple(AAPL)・Microsoft(MSFT)の
過去3ヶ月の株価を取得してExcelに出力するスクリプトを作ってください。

・各銘柄を別シートに出力
・5日移動平均と25日移動平均も計算して列を追加
・各シートに折れ線グラフも自動で作成
・yfinanceライブラリを使ってください

python — 株価レポート自動生成(Claude Code生成)
# Claude Codeが生成した株価データ取得スクリプト
import yfinance as yf
import pandas as pd
import openpyxl
from openpyxl.chart import LineChart, Reference

TICKERS   = ["7203.T", "9984.T", "AAPL", "MSFT"]
PERIOD    = "3mo"
XLSX_PATH = "株価レポート_自動生成.xlsx"

def fetch_stock_data() -> dict:
    """複数銘柄の株価データを取得し移動平均を計算"""
    results = {}
    for ticker in TICKERS:
        df = yf.Ticker(ticker).history(period=PERIOD)
        df.index = df.index.strftime("%Y-%m-%d")
        df["MA5"]  = df["Close"].rolling(5).mean().round(2)
        df["MA25"] = df["Close"].rolling(25).mean().round(2)
        results[ticker] = df[["Close", "Volume", "MA5", "MA25"]]
    return results

def export_to_excel(data: dict) -> None:
    wb = openpyxl.Workbook()
    wb.remove(wb.active)

    for ticker, df in data.items():
        ws = wb.create_sheet(title=ticker.replace(".", "_"))
        ws.append(["日付", "終値", "出来高", "5日MA", "25日MA"])
        for idx, row in df.iterrows():
            ws.append([idx] + row.tolist())

        # 折れ線グラフを自動追加
        chart = LineChart()
        chart.title = f"{ticker} 株価推移(3ヶ月)"
        chart.style = 10
        data_ref = Reference(ws, min_col=2, max_col=2, min_row=1, max_row=ws.max_row)
        chart.add_data(data_ref, titles_from_data=True)
        chart.width = 20
        chart.height = 12
        ws.add_chart(chart, "F2")

    wb.save(XLSX_PATH)
    print(f"株価レポートを出力: {XLSX_PATH}")

data = fetch_stock_data()
export_to_excel(data)

6. Google AnalyticsのデータもClaude Codeで自動取得

毎週月曜日にGA4のデータをExcelレポートにまとめる作業も自動化したいと思い、Claude Codeに相談しました。Claude CodeはGA4 APIの設定手順からコード生成まで、一連の流れを日本語でガイドしてくれました。

プロンプト例 4

私がClaude Codeに入力したプロンプトGoogle Analytics 4(GA4)の過去30日間のデータを
Excelに自動出力するスクリプトを作ってください。

取得したい指標:セッション数・PV・CV数・直帰率
取得したいディメンション:日付・チャネル

また、セットアップ手順(Googleの設定も含む)を
初心者向けに日本語で説明してください。

Claude Codeからの回答(要約):
「GA4 APIを使うにはGoogle Cloud Consoleでの設定が必要です。以下の手順でセットアップしてください。
1. Google Cloud ConsoleでプロジェクトとサービスアカウントとJSONキーファイルを作成
2. GA4プロパティの管理画面でサービスアカウントに閲覧権限を付与
3. pip install google-analytics-data openpyxl pandasを実行
その後、以下のコードを使ってください。」
python — GA4データ自動取得(Claude Code生成)
# Claude Codeが生成したGA4レポート自動化スクリプト
import os
import pandas as pd
from google.analytics.data_v1beta import BetaAnalyticsDataClient
from google.analytics.data_v1beta.types import RunReportRequest, DateRange, Dimension, Metric

os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "./service_account.json"
PROPERTY_ID = os.environ["GA4_PROPERTY_ID"]
XLSX_PATH   = "GA4レポート_自動生成.xlsx"

def fetch_ga4_data(start: str = "30daysAgo", end: str = "today") -> pd.DataFrame:
    client = BetaAnalyticsDataClient()
    request = RunReportRequest(
        property=f"properties/{PROPERTY_ID}",
        dimensions=[Dimension(name="date"), Dimension(name="sessionDefaultChannelGroup")],
        metrics=[
            Metric(name="sessions"),
            Metric(name="screenPageViews"),
            Metric(name="conversions"),
            Metric(name="bounceRate"),
        ],
        date_ranges=[DateRange(start_date=start, end_date=end)],
    )
    response = client.run_report(request)
    rows = [{
        "日付": row.dimension_values[0].value,
        "チャネル": row.dimension_values[1].value,
        "セッション": int(row.metric_values[0].value),
        "PV": int(row.metric_values[1].value),
        "CV": int(row.metric_values[2].value),
        "直帰率": round(float(row.metric_values[3].value) * 100, 2),
    } for row in response.rows]
    return pd.DataFrame(rows)

def export_to_excel(df: pd.DataFrame) -> None:
    with pd.ExcelWriter(XLSX_PATH, engine="openpyxl") as writer:
        df.to_excel(writer, sheet_name="日別データ", index=False)
        pivot = df.groupby("チャネル")[["セッション", "PV", "CV"]].sum()
        pivot.to_excel(writer, sheet_name="チャネル別集計")
    print(f"GA4レポート出力完了: {XLSX_PATH}")

df = fetch_ga4_data()
export_to_excel(df)

7. 複数APIを1つのダッシュボードにまとめてほしいとClaude Codeに依頼

為替・株価・GA4のデータを別々のExcelファイルで管理するのが煩雑になってきたので、Claude Codeに「全部1つのExcelダッシュボードにまとめて」と依頼しました。Claude Codeはマルチ API統合のアーキテクチャを設計し、サマリーシートに全データを集約するコードを生成してくれました。

プロンプト例 5

私がClaude Codeに入力したプロンプト為替レート・主要株価指数・天気予報の3種類のAPIデータを
1つのExcelファイル「経営ダッシュボード.xlsx」に自動集約するスクリプトを作ってください。

・各APIのデータを別シートに保存
・「サマリー」シートに最新値だけをまとめて表示
・いずれかのAPIが失敗してもエラーにならず、残りのデータだけで処理を続けること
・最終更新日時をサマリーシートに表示

python — マルチAPI統合ダッシュボード(Claude Code生成)
# Claude Codeが生成したマルチAPI統合ダッシュボード
import os, time, logging, requests, yfinance as yf
import pandas as pd, openpyxl
from datetime import datetime

logging.basicConfig(level=logging.INFO, format="%(asctime)s %(message)s")
log = logging.getLogger(__name__)

DASHBOARD = "経営ダッシュボード.xlsx"

def safe_call(func, label: str):
    """APIが失敗してもNoneを返すだけで処理を続ける"""
    try:
        result = func()
        log.info(f"[OK] {label}")
        return result
    except Exception as e:
        log.warning(f"[SKIP] {label}: {e}")
        return None

def fetch_forex():
    key = os.environ["EXCHANGE_RATE_API_KEY"]
    r = requests.get(f"https://v6.exchangerate-api.com/v6/{key}/latest/USD", timeout=10)
    rates = r.json()["conversion_rates"]
    return {"USD/JPY": rates["JPY"], "EUR/JPY": rates["JPY"] / rates["EUR"]}

def fetch_stocks():
    return {n: round(yf.Ticker(s).fast_info["last_price"], 2)
            for n, s in {"日経225": "^N225", "S&P500": "^GSPC"}.items()}

def write_dashboard(forex, stocks) -> None:
    try:
        wb = openpyxl.load_workbook(DASHBOARD)
    except FileNotFoundError:
        wb = openpyxl.Workbook()
    ws = wb["サマリー"] if "サマリー" in wb.sheetnames else wb.active
    ws.title = "サマリー"
    ws["B1"] = f"最終更新: {datetime.now().strftime('%Y/%m/%d %H:%M')}"
    if forex:
        ws["B3"] = forex.get("USD/JPY")
        ws["B4"] = forex.get("EUR/JPY")
    if stocks:
        ws["B6"] = stocks.get("日経225")
        ws["B7"] = stocks.get("S&P500")
    wb.save(DASHBOARD)
    log.info(f"ダッシュボード更新完了 → {DASHBOARD}")

if __name__ == "__main__":
    forex  = safe_call(fetch_forex, "為替API")
    stocks = safe_call(fetch_stocks, "株価API")
    write_dashboard(forex, stocks)

8. APIキーの安全な管理方法もClaude Codeに教わった

APIキーをコードに直書きしてしまうと、GitHubなどに誤ってアップロードした際に悪用されるリスクがあります。Claude Codeに「APIキーを安全に管理する方法を教えて」と聞くと、環境変数や.envファイルを使った方法を詳しく説明してくれました。

プロンプト例 6

私がClaude Codeに入力したプロンプトAPIキーをコードの外で安全に管理する方法を教えてください。
チームでコードを共有するときでも、APIキーが漏れないようにしたいです。
Windowsでの設定方法を具体的に教えてください。
Claude Codeが出力した説明(要約):

方法1: .envファイルを使う(推奨)
プロジェクトフォルダに .env ファイルを作成し、APIキーを記載します。
python-dotenvライブラリでコードから読み込みます。
.envファイルは .gitignore に追加して絶対にGitにコミットしないようにします。

方法2: Windowsの環境変数に設定する
コマンドプロンプトで:setx EXCHANGE_RATE_API_KEY "your_api_key_here"
再起動後にPythonから os.environ["EXCHANGE_RATE_API_KEY"] で取得できます。

9. 導入事例

🏢
事例 A — 商社・従業員150名
Claude Codeで為替・商品相場の自動取得を実現、年間80時間削減

担当者が毎朝5通貨ペアと3種の商品相場を手動確認・入力していました。Claude Codeに要件を伝えたところ、ExchangeRate-APIとAlpha Vantage(商品相場API)を組み合わせたスクリプトを生成。Claude Codeへのプロンプト入力から動作確認まで約30分で完成し、年間80時間の作業削減と入力ミスゼロを実現しました。

年間80時間削減
入力ミスゼロ
Claude Code導入30分
📣
事例 B — デジタルマーケ会社・従業員60名
Claude Codeが8種類の広告APIを統合、レポート作成6時間→30分

Google広告・Meta広告・LINE広告など8媒体のデータを手動集計していました。Claude Codeに「全媒体のデータを統合して顧客別にExcelレポートを自動生成して」と伝えると、Claude Codeが各APIの認証フローを調査してコードを生成。月次レポート作成が6時間から30分に短縮されました。

6時間→30分
40社分自動生成
Claude Code活用

10. よくある質問(FAQ)

APIの知識がなくてもClaude Codeで連携コードを作れますか?
はい。Claude Codeに「為替レートのAPIをExcelに書き込みたい」と伝えるだけで、適切なAPIの選定からコード生成・環境構築手順まで日本語で案内してくれます。APIキーの取得方法もClaude Codeに聞けば詳しく教えてくれます。技術的な知識ゼロでも大丈夫です。
Claude CodeでAPIキーを安全に管理する方法は?
Claude Codeはコード生成時に自動的に環境変数(os.environ)や.envファイルを使ったAPIキー管理を組み込みます。「セキュリティを考慮して」と伝えると、.gitignoreの設定方法まで案内してくれるので安心です。
レート制限(1分100リクエスト等)に対応したコードもClaude Codeが作れますか?
はい。Claude Codeに「レート制限に対応してリトライ処理も入れてください」と伝えると、time.sleepによる待機とtenacityライブラリを使ったリトライロジックを自動的に組み込んでくれます。
複数のAPIデータを1つのExcelにまとめることはできますか?
できます。Claude Codeに「為替レートと株価と天気予報を1つのExcelダッシュボードにまとめて」と伝えると、複数APIを統合するアーキテクチャとコードを設計してくれます。各APIが失敗したときの処理も自動で組み込みます。
社内システムのAPIとも連携できますか?
はい。Claude Codeに社内APIのドキュメントや仕様を共有すると、それに合わせた連携コードを生成してくれます。Basic認証・OAuth・APIキーなど様々な認証方式に対応したコードを作ってくれます。SAP・Salesforceなどのエンタープライズシステムにも対応可能です。

関連記事


制作実績サンプル

このクオリティの資料が、あなたの業務でも作れます

Aurant Technologies が実際に制作したコンサルティング資料(全82枚)のサンプルです。Claude Code × AI自動化により、従来の1/5のコスト・時間で同等品質を実現します。

タイトルスライド

タイトル・ダーク背景
3カラム分析

3カラム比較・分析
AI活用フロー

AI活用フロー図解
Before/After

Before/After比較
RFPテンプレート

構造化コンテンツ
全10枚を
見る

御社のテーマでこのレベルの資料を作成できます
制作費・納期・自動化プランは無料相談でご確認いただけます

📊 サンプル全10枚を見る →

Claude Code × Web API自動化を
今すぐ試しませんか?

どのAPIデータをExcelに自動集約したいか教えていただければ、
Claude Codeへの最適なプロンプト設計と実装方法を
無料相談でご提案します。

無料相談を予約する(30分)

AT
aurant technologies 編集

上場企業からスタートアップまで、数多くのデータ分析基盤構築・AI導入プロジェクトを主導。単なる技術提供にとどまらず、MA/CRM(Salesforce, Hubspot, kintone, LINE)導入によるマーケティング最適化やバックオフィス業務の自動化など、常に「事業数値(売上・利益)」に直結する改善実績多数。

この記事が役に立ったらシェア: