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
Excelファイル(forex_rates.xlsx)に自動で書き込むPythonスクリプトを作ってください。
・無料のAPIを使いたいです
・実行するたびに新しい行にデータを追記していきたいです
・ヘッダー行には「更新日時」「USD/JPY」「EUR/JPY」「GBP/JPY」「CNY/JPY」と入れてください
・最新行のセルを緑色でハイライトしてください
Claude Codeはこのプロンプトを受け取り、無料で使えるExchangeRate-APIを選定し、30行ほどのPythonコードを即座に生成してくれました。Claude Codeが出力したコードには、API呼び出し・データ整形・Excelへの書き込み・セルの色付けまで全て含まれていました。
「ExchangeRate-API(無料プランで月1,500リクエスト)を使ったスクリプトを生成しました。まずAPIキーを無料登録して環境変数に設定してください。実行方法も説明します。」
3. Claude Codeが生成した為替レート自動取得コード
以下がClaude Codeが生成した完全なPythonスクリプトです。私はこのコードをコピーして実行するだけで、為替レートがExcelに自動書き込みされました。
# 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分
(プロンプト入力からコード出力まで) - 従来の手作業15分が: 完全ゼロに
- スクリプトの行数: 約30行(Claude Codeが自動生成)
- 入力ミスによる見積もり誤り: 月ゼロ件(自動化後)
4. 「毎朝9時に自動実行したい」とClaude Codeに伝えたら
手動でスクリプトを実行するのも面倒なので、毎朝9時に自動で動かしたいとClaude Codeに追加で依頼しました。Claude CodeはWindowsタスクスケジューラーの設定方法まで教えてくれました。
プロンプト例 2
Windowsを使っています。
タスクスケジューラーに登録する方法と、
ログファイルに実行結果を記録する機能もコードに追加してください。
「スクリプトにloggingモジュールによるログ記録機能を追加しました。Windowsタスクスケジューラーへの登録手順は以下のとおりです。スタートメニュー → タスクスケジューラ → 基本タスクの作成 → トリガー「毎日 09:00」→ 操作「プログラムの開始: python C:\scripts\forex_to_excel.py」と設定してください。」
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
過去3ヶ月の株価を取得してExcelに出力するスクリプトを作ってください。
・各銘柄を別シートに出力
・5日移動平均と25日移動平均も計算して列を追加
・各シートに折れ線グラフも自動で作成
・yfinanceライブラリを使ってください
# 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
Excelに自動出力するスクリプトを作ってください。
取得したい指標:セッション数・PV・CV数・直帰率
取得したいディメンション:日付・チャネル
また、セットアップ手順(Googleの設定も含む)を
初心者向けに日本語で説明してください。
「GA4 APIを使うにはGoogle Cloud Consoleでの設定が必要です。以下の手順でセットアップしてください。
1. Google Cloud ConsoleでプロジェクトとサービスアカウントとJSONキーファイルを作成
2. GA4プロパティの管理画面でサービスアカウントに閲覧権限を付与
3. pip install google-analytics-data openpyxl pandasを実行
その後、以下のコードを使ってください。」
# 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
1つのExcelファイル「経営ダッシュボード.xlsx」に自動集約するスクリプトを作ってください。
・各APIのデータを別シートに保存
・「サマリー」シートに最新値だけをまとめて表示
・いずれかのAPIが失敗してもエラーにならず、残りのデータだけで処理を続けること
・最終更新日時をサマリーシートに表示
# 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
チームでコードを共有するときでも、APIキーが漏れないようにしたいです。
Windowsでの設定方法を具体的に教えてください。
方法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. 導入事例
担当者が毎朝5通貨ペアと3種の商品相場を手動確認・入力していました。Claude Codeに要件を伝えたところ、ExchangeRate-APIとAlpha Vantage(商品相場API)を組み合わせたスクリプトを生成。Claude Codeへのプロンプト入力から動作確認まで約30分で完成し、年間80時間の作業削減と入力ミスゼロを実現しました。
入力ミスゼロ
Claude Code導入30分
Google広告・Meta広告・LINE広告など8媒体のデータを手動集計していました。Claude Codeに「全媒体のデータを統合して顧客別にExcelレポートを自動生成して」と伝えると、Claude Codeが各APIの認証フローを調査してコードを生成。月次レポート作成が6時間から30分に短縮されました。
40社分自動生成
Claude Code活用
10. よくある質問(FAQ)
関連記事
Claude Code × Web API自動化を
今すぐ試しませんか?
どのAPIデータをExcelに自動集約したいか教えていただければ、
Claude Codeへの最適なプロンプト設計と実装方法を
無料相談でご提案します。