• #excel
  • #openpyxl
  • #feature-slides
  • #cf-worksheet
  • #claude-code
開発mdx-playground

別リポジトリ eurekapu-nuxt4 で、feature-slides スキルを使ってCF精算表のExcel解説スライドを2本量産した。スキル化した直後の検証も兼ねている。2〜3行のプロンプトを投げると、Excelの構造を読み取って章立てまで組み上がる手応えを掴めた。

背景: スキル化した直後の量産

feature-slides スキルは元々 Vue/TS/Pinia の機能解説用に作ったが、今回はExcelロジックの解説に組み替えて流用した。最初の対象は資本政策(CF305)、続けて借入金(CF301)。シートを読む順番、追跡対象のセル、章立ての粒度をスキル側に固定しておけば、実Excelファイルを差し替えるだけで似た構造の解説スライドが出力されるかを確かめたかった。

CF305 資本政策: 38スライドを最初に量産

対象Excelは CF_305_資本政策_c_CFWS_20260406_171925.xlsx。3点セットで構成されている。

  • 取引モジュール(TPL_資本政策)
  • MF仕訳出力
  • CFWS本体(年度シート + 年次推移表 + サマリー)

追跡対象は「設立出資 3,000,000円」。この1本の取引が取引モジュールから入って、仕訳に変換され、年次推移表で集計され、CFWSの行に着地するまでを6段階で追った。

取引モジュール(黄)
  → MF仕訳(ピンク)
    → 年度シートの当期欄(青)
      → 年次推移表の該当行(緑)
        → CFWSの財務CF区分(緑)
          → サマリーの「資本金の増加」行(水色)

色で繋いだのは、Excelを読み慣れた人ほど「セルの色が同じ=同じお金の流れ」と直感的に追えるから。形容詞で「分かりやすい」と書くより、6色のチェーンが一画面に並んだ瞬間、聞き手の指が画面上を順番に追い始める。

章10は当初テキスト中心の解説スライドを生成していたが、Excelの行番号と列レターが消えると「実物が想像できない」と感じたため、Excel忠実再現グリッドに差し替えた。横展開で全11スライドを差し替え。最終的に38スライドが揃った。

CF301 借入金: openpyxlの罠を踏みながら43スライド

2本目は CF_301_借入金_c_CFWS_20260413_143228.xlsx。日本政策金融公庫の長期借入 2,000,000円と、みずほ銀行の短期借入 1,000,000円の2契約が並ぶ。集計の値が揃わないと話にならないので、まず数値検証から入った。

ここで openpyxldata_only=True で開いたのに、サマリーシートの値が全部 None で返ってくる事象に当たった。

試行錯誤の表

#テーマ試したこと結果気づき
1data_only=Trueで値がNoneExcelで一度開かれていないため数式キャッシュが空だったLibreOffice CLIで再計算してから読み直しopenpyxlのdata_onlyはキャッシュ依存。生成直後のxlsxには使えない
2サマリーの値確認全行が数式参照で構成されている主要セルの値を手計算で照合数式の妥当性は「貼り付け値」で見るほうが速い
3スライドはみ出し章5でCFWS全体を1枚に詰め込もうとしたmode に応じてスライドサイズを切り替えシート全体表示は縦長レイアウトに分けるべき

LibreOfficeで再計算する一手

soffice --headless --calc --convert-to xlsx \
  --outdir /tmp/recalc \
  CF_301_借入金_c_CFWS_20260413_143228.xlsx

このひと手間を挟むと、openpyxl側で wb = load_workbook(path, data_only=True) がキャッシュ済みの値を返してくれた。2022年の利息 15,056円、長期借入 2,000,000円が手計算と一致したところで、ようやくスライド生成に進めた。

スライドは43枚。検証はスキルのStep 6に従って Chrome DevTools MCP で1枚ずつスクリーンショットを撮り、はみ出し・色の分断・参照矢印のズレを確認した。

学び

  • 量産フェーズに入った瞬間、feature-slides スキルが2〜3行プロンプトで動く効率を体感した。最初の1本に2時間かけても、2本目は30分で出力まで辿り着いた
  • Excelの値が None で返ってきたら、まずLibreOfficeで再計算する。これがほぼ唯一の解
  • 「同じシート、違う注目領域」のパターンを使えば、CFWSの上半分・下半分を別スライドに分けず、1枚で見せられる
  • 取引モジュール → 仕訳 → 年次推移表 → CFWS の追跡チェーンを「色」で繋げると、Excel理解者の視線が画面上を勝手に追い始める

明日やること

  • CF302(売掛金)と CF303(買掛金)も同じ手順で量産する
  • LibreOffice再計算ステップを feature-slides スキルのStep 2に組み込む
  • 章10の「Excel忠実再現グリッド」テンプレートをスキル側にコンポーネント化する