インボイス・経費 自動整理
invoice-organizer 日本語版
スキルをダウンロード
SKILL.md とスクリプト一式(展開すると invoice-organizer-jp/)。~/.claude/skills/ に置くだけで使えます。
レシート・請求書が混在した雑然としたフォルダを、確定申告・青色申告にそのまま使える Excel(.xlsx) 台帳へ変換する Claude Code スキルです。米国発の invoice-organizer をベースに、日本の青色申告の費目区分と**インボイス制度(適格請求書)**へ対応するよう翻案し、実機で検証しました。
こんな人に
- 確定申告・青色申告に向けて、経費を自分で整理したい個人事業主・フリーランス
- 複数の取引先からの請求書・レシートが溜まっている
- メールでダウンロードした PDF 請求書がフォルダに散らばっている
- インボイス制度対応の記録(登録番号・税率区分)を残したい
- 税理士に渡すための経費一覧を作りたい
できること
- あらゆる形式のファイルを読み込む — 画像(JPG / PNG)のレシート、PDF 請求書、CSV(カード・銀行明細)、Excel(既存の経費メモ)
- 各ファイルから情報を抽出 — 日付 / 取引先 / 金額(税込・税抜)/ 適用税率(10% / 8% / 非課税)/ 適格請求書発行事業者の登録番号(
T+ 13桁)/ 内容・品目 - 日本の費目区分に分類 — 青色申告決算書(一般用)の正式な経費区分に準拠(旅費交通費・通信費・接待交際費・消耗品費・外注工賃・地代家賃 ほか)
- Excel(.xlsx) 台帳を出力 — 1ファイル1行の経費一覧シート+費目別・税率別の集計シート。元ファイルへの相対パスを記録し、原本はリネーム・移動せず保持
元スキルからの主な変更点
| 項目 | 元スキル(米国版) | 翻案後(日本版) |
|---|---|---|
| 対象形式 | PDF・JPG・PNG 中心 | 画像・PDF・CSV・Excel すべてに対応 |
| 費目区分 | Software / Office / Travel 等(米国の会計慣行) | 青色申告決算書(一般用)の正式な経費区分+内訳管理用の独立区分(会議費・新聞図書費・支払手数料) |
| 出力形式 | CSV | Excel(.xlsx)(集計シート付き) |
| 税制対応 | なし | インボイス制度対応:登録番号列・税率(10% / 8%)区分列を追加 |
インストール
Claude Code のスキルディレクトリに配置します。
# スキル用のフォルダを作成
mkdir -p ~/.claude/skills/invoice-organizer-jp/scripts
# このページの SKILL 本体を ~/.claude/skills/invoice-organizer-jp/SKILL.md として保存
# Excel 生成スクリプトを ~/.claude/skills/invoice-organizer-jp/scripts/generate_expense_xlsx.py として保存
Excel 出力には openpyxl が必要です(検証時のつまずきポイント。詳しくは末尾の検証ログ参照)。
pip install openpyxl
使い方
整理したいフォルダで Claude Code に依頼するだけです。
cd ~/Desktop/レシート整理
このフォルダの画像・PDF・CSV ファイルを読み込んで、
日付・取引先・金額・税率・登録番号を抽出し、
青色申告決算書の費目区分(旅費交通費・通信費・接待交際費・消耗品費・外注工賃 等)に分類して、
インボイス対応の Excel 台帳(expense-summary.xlsx)を作って
抽出した情報は次のような JSON にまとめてからスクリプトに渡し、Excel を生成します。
[
{
"date": "2026-04-15",
"vendor": "株式会社オフィスマート",
"description": "コピー用紙 A4 5束、ボールペン 10本",
"amount_incl_tax": 3630,
"tax_rate": 10,
"category": "消耗品費",
"registration_number": "T1234567890123",
"file_path": "sample_receipts/receipt1_office_supplies.png",
"needs_review": false
}
]
python3 scripts/generate_expense_xlsx.py --input extracted_data.json --output expense-summary.xlsx
出力サンプル
実機検証で生成した expense-summary.xlsx は2シート構成です。
経費一覧シート(抜粋)
| 日付 | 取引先 | 内容 | 税込 | 税抜 | 税率 | 登録番号 | 費目区分 | 確認 |
|---|---|---|---|---|---|---|---|---|
| 2026-04-15 | 株式会社オフィスマート | 事務用品 | 3,630 | 3,300 | 10% | T1234567890123 | 消耗品費 | — |
| 2026-04-18 | 個人タクシー 山田太郎 | タクシー利用 | 1,800 | 1,636 | 10% | なし | 旅費交通費 | 要確認 |
| 2026-04-20 | 株式会社ネクストネット | 回線利用料 | 8,800 | 8,000 | 10% | T9876543210123 | 通信費 | — |
| 2026-04-22 | スターバックス 渋谷店 | カード利用(用途不明) | 980 | — | 不明 | なし | 会議費 | 要確認 |
税抜金額は「税込金額 ÷ (1 + 税率)」で自動計算されます。税率や登録番号が読み取れない取引には自動で 要確認 フラグが立ちます。
集計シート
- 費目別小計:支払手数料 1件 / ¥55,000、旅費交通費 2件 / ¥16,800、通信費 1件 / ¥8,800、消耗品費 2件 / ¥8,130、会議費 1件 / ¥980
- 税率別小計:不明 4件 / ¥75,480、10% 3件 / ¥14,230
- 登録番号なしの件数(インボイス対象外の可能性、要確認):5件
安全に使うための設計
- 税率の記載がない取引を、勝手に「標準10%」と推測して処理しない(必ず 税率不明 として記録し確認を促す)
- 登録番号が読み取れない取引は 登録番号なし として集計し、インボイス制度の経過措置などの税務判断はスキルでは行わず、税理士・ユーザー確認に委ねる
- 原本ファイルはリネーム・移動せず保持。台帳には元ファイルへの相対パスのみを記録
原作クレジット
本スキルは invoice-organizer を基に、日本語環境向けに翻案・実機検証したものです。
Original by ComposioHQ, license: Apache License 2.0
※ 原リポジトリ awesome-claude-skills は README でリポジトリ全体を Apache License 2.0 と明示しています。invoice-organizer フォルダには個別の LICENSE ファイルが置かれていないため、リポジトリ全体の Apache License 2.0 が適用されます。
検証ログ:詰まった点と学び
実際に Claude Code 上で 4 形式(画像 PNG ×2・PDF ×1・CSV ×1・既存 Excel ×1、計 7 レコード)のサンプルを読み取り、Excel 台帳を生成して値を検証しました。
検証日:2026-06-29
検証手順
- 元リポジトリの
invoice-organizer/SKILL.md(master ブランチ)を取得して保存。 - 日本向けに翻案した
SKILL.mdを作成(対応形式の拡張、青色申告決算書の正式な経費区分への変更、出力を Excel に変更、インボイス制度の登録番号・税率区分への対応)。 - Excel 出力用スクリプト
scripts/generate_expense_xlsx.py(openpyxl 使用)を新規作成。 - 4 形式のサンプルファイルを作成し、Claude Code の
Readツールで内容を読み取って情報抽出。 - 抽出結果を
extracted_data.jsonにまとめ、スクリプトを実行してexpense-summary.xlsxを生成。 - 生成された xlsx を openpyxl で読み込み、値を検証。
つまずいた点と対処
openpyxl未インストール:スクリプト実行前にModuleNotFoundError: No module named 'openpyxl'が発生。pip3 install openpyxlで解決(v3.1.5)。実行環境に入っていない可能性があるため、SKILL.md 内にpip install openpyxlの前提を明記しました。- 日本語フォントの選定:サンプル画像生成に PIL で日本語を描画する際、
/System/Library/Fonts/配下にヒラギノ角ゴシックが見当たらず、Hiragino Sans GB.ttc(簡体字中国語向け)を使用。漢字・ひらがな・カタカナとも問題なく描画できることを確認(あくまでテスト用画像生成の話で、本番の読み取り精度には影響しません)。 - PDF 生成:
reportlab・pymupdfが未インストールだったため、PIL 標準のImage.save(path, "PDF")でテスト用 PDF を作成。Claude Code のReadツールで PDF 内の日本語テキストを問題なく認識できました。
動作確認結果
- 画像(PNG)・PDF・CSV・Excel の 4 形式すべてを読み取り、日付・取引先・金額・税率・登録番号・費目区分を正しく抽出できた。
- CSV(カード明細)のように税率・登録番号の情報が無いケースでは
needs_review: trueで正しくフラグが立ち、集計シートの「登録番号なしの件数」(5件)に反映された。 - 出力された
expense-summary.xlsxは「経費一覧」シート(10列・7レコード)と「集計」シート(費目区分別小計・税率別小計・登録番号なし件数)の2シート構成で、税抜金額の自動計算(税込 ÷ (1 + 税率))も正しく動作した。 - スクリプト実行時にエラーは発生しなかった(openpyxl インストール後)。
残課題(ユーザー判断が必要な点)
- 「会議費・新聞図書費・支払手数料」は青色申告決算書の正式な印刷欄には無い区分。最終的に申告書へ転記する際、これらを「雑費」にまとめるかどうかは要件次第のため、SKILL.md 上でユーザー確認を促す記載にしてあります。
- インボイス制度の経過措置(免税事業者からの仕入れに係る一定割合の控除可否)など、税務的な最終判断はスキルでは行わず、必ず税理士・ユーザー確認を促す設計にしています。