[{"data":1,"prerenderedAt":411},["ShallowReactive",2],{"content-/2026-04-02-diary":3,"all-pages-for-dir":409,"og-image-/2026-04-02-diary":410},{"id":4,"title":5,"body":6,"category":390,"description":391,"extension":392,"meta":393,"navigation":394,"path":395,"project_name":396,"published":397,"publishedAt":398,"seo":399,"stem":400,"tags":401,"todo":407,"updatedAt":407,"__hash__":408},"pages/2026-04/2026-04-02/diary-2026-04-02.md","2026年4月2日の開発日記 - CF精算表パイプライン構築と会計ソフト繰越自動化",{"type":7,"value":8,"toc":377},"minimark",[9,14,18,22,27,30,36,66,77,80,84,87,91,117,125,127,131,134,138,158,166,168,171,336,338,341,358,360,363],[10,11,13],"h1",{"id":12},"_2026年4月2日の開発日記","2026年4月2日の開発日記",[15,16,17],"p",{},"CF精算表の自動生成パイプラインを口頭メモからワークシート出力まで一本で繋いだ日。朝は会計ソフトAの繰越自動化で無限ループを踏み、午後はCF精算表の中間テーブルやスキル設計に没頭した。",[19,20,21],"h2",{"id":21},"今日やったこと",[23,24,26],"h3",{"id":25},"_1-chrome拡張会計ソフトa次年度繰越一括自動化","1. Chrome拡張：会計ソフトA次年度繰越一括自動化",[15,28,29],{},"会計ソフトAの「次年度繰り越し」を複数年度分まとめて実行する機能をChrome拡張に実装した。",[15,31,32],{},[33,34,35],"strong",{},"主な成果:",[37,38,39,43,46,49,55,63],"ul",{},[40,41,42],"li",{},"Chrome DevTools MCPで繰越フォームの構造とAPIを特定",[40,44,45],{},"Codexレビュー3回を経て計画を精緻化（CTI/TID整合性、成否判定、安全弁）",[40,47,48],{},"bridge.js → import.js → content.js の3ファイルで実装完了",[40,50,51,54],{},[33,52,53],{},"致命的バグ",": 会計ソフトAは最新年度でも繰越フォームを表示するため、noFormチェックで無限ループ→2033年度まで作成してしまった",[40,56,57,58,62],{},"修正: ",[59,60,61],"code",{},"endYear >= 現在年(2026)"," の終了条件に変更",[40,64,65],{},"UIを3回改善（独立セクション→カード内→ヘッダー行のオレンジボタン）",[15,67,68,71,72],{},[33,69,70],{},"詳細:"," ",[73,74,76],"a",{"href":75},"/chrome-extension-mf-term-carryover","Chrome拡張で会計ソフトの次年度繰越を一括自動化した話",[78,79],"hr",{},[23,81,83],{"id":82},"_2-cf精算表ワークフロー構築","2. CF精算表ワークフロー構築",[15,85,86],{},"口頭/参考書→取引モジュール→会計ソフトA仕訳→年次推移表→CF精算表のパイプラインを一気通貫で構築した。",[15,88,89],{},[33,90,35],{},[37,92,93,96,99,102,105,108,111],{},[40,94,95],{},"CF精算表の複数年度一括生成（年次推移表1シート化、中間テーブル転置、調整列SUMIFS化）",[40,97,98],{},"貸付金ライフサイクルモジュール新規作成（借入金パターンの反転）",[40,100,101],{},"資本政策（Cap Table）モジュール新規作成",[40,103,104],{},"スキル・コマンドの整理（cf-lifecycle-journal、/cf-multi-year-worksheet）",[40,106,107],{},"IBフォーマットを全スキルの最終ステップとして必須化",[40,109,110],{},"全ステップでSS+Excel両方出力の方針確定",[40,112,113,114],{},"命名規則策定: ",[59,115,116],{},"CF_精算表_{ライフサイクル名}",[15,118,119,71,121],{},[33,120,70],{},[73,122,124],{"href":123},"/cf-worksheet-pipeline-construction","CF精算表ワークフロー構築",[78,126],{},[23,128,130],{"id":129},"_3-mf仕訳年次推移表の自動生成","3. MF仕訳→年次推移表の自動生成",[15,132,133],{},"会計ソフトAの仕訳データからBS+PLの年次推移表を自動生成するスクリプトを開発し、Excel版とGoogle Sheets版のデュアル出力に対応した。",[15,135,136],{},[33,137,35],{},[37,139,140,143,146,149,152],{},[40,141,142],{},"gen_annual_table_core.py として共通モジュール切り出し（Excel版とSS版で共有）",[40,144,145],{},"勘定科目マスターJSON化（223件）",[40,147,148],{},"返済予定表の合計行バグ修正（Row 19の初回返済が合計に含まれていなかった）",[40,150,151],{},"チェック行・入力仕訳シート同梱・全年度出力（2022〜2028）対応",[40,153,154,157],{},[59,155,156],{},"/gen-annual-table"," コマンド更新（SS版を推奨に）",[15,159,160,71,162],{},[33,161,70],{},[73,163,165],{"href":164},"/mf-journal-annual-table-generation","会計ソフトの仕訳データから年次推移表を自動生成した",[78,167],{},[19,169,170],{"id":170},"今日の試行錯誤",[172,173,174,196],"table",{},[175,176,177],"thead",{},[178,179,180,184,187,190,193],"tr",{},[181,182,183],"th",{},"#",[181,185,186],{},"テーマ",[181,188,189],{},"試したこと",[181,191,192],{},"結果",[181,194,195],{},"気づき",[197,198,199,217,234,251,268,285,302,319],"tbody",{},[178,200,201,205,208,211,214],{},[202,203,204],"td",{},"1",[202,206,207],{},"繰越終了条件",[202,209,210],{},"noForm（フォームなし）で判定",[202,212,213],{},"無限ループ",[202,215,216],{},"会計ソフトAは最新年度でも常にフォーム表示",[178,218,219,222,225,228,231],{},[202,220,221],{},"2",[202,223,224],{},"UIボタン配置",[202,226,227],{},"設定タブ下部に独立セクション",[202,229,230],{},"場所が離れすぎ",[202,232,233],{},"事業者カード内に動的配置が自然",[178,235,236,239,242,245,248],{},[202,237,238],{},"3",[202,240,241],{},"中間テーブル",[202,243,244],{},"横持ち（行=CF項目）",[202,246,247],{},"INDEX/MATCHが煩雑",[202,249,250],{},"縦持ちに転置してSUMIFSで一発",[178,252,253,256,259,262,265],{},[202,254,255],{},"4",[202,257,258],{},"集計関数",[202,260,261],{},"SUMPRODUCT",[202,263,264],{},"再計算が遅い",[202,266,267],{},"SUMIFS + YEAR関数でシンプル化",[178,269,270,273,276,279,282],{},[202,271,272],{},"5",[202,274,275],{},"合計列設計",[202,277,278],{},"INDEX/MATCH混在",[202,280,281],{},"メンテ困難",[202,283,284],{},"合計列=SUMのみルールに統一",[178,286,287,290,293,296,299],{},[202,288,289],{},"6",[202,291,292],{},"年次推移表コピー",[202,294,295],{},"シートごとcopyTo",[202,297,298],{},"#REF!エラー",[202,300,301],{},"セル内容上書き方式が安全",[178,303,304,307,310,313,316],{},[202,305,306],{},"7",[202,308,309],{},"返済予定表合計",[202,311,312],{},"=SUM(E20:E501)",[202,314,315],{},"Row19漏れ",[202,317,318],{},"範囲始点の確認を怠った初歩的ミス",[178,320,321,324,327,330,333],{},[202,322,323],{},"8",[202,325,326],{},"スキル分離",[202,328,329],{},"汎用ルール切り出し",[202,331,332],{},"見送り",[202,334,335],{},"中身が薄いうちは分けない判断",[78,337],{},[19,339,340],{"id":340},"今日の学び",[37,342,343,346,349,352,355],{},[40,344,345],{},"会計ソフトのUI前提（「フォームが消えたら完了」）を盲信すると無限ループを踏む。外部の事実（現在年度）で終了判定する方が堅牢",[40,347,348],{},"「合計列=SUMのみ、調整列に関数」のルールがCF精算表の数式設計を見通しよくする",[40,350,351],{},"Google Sheetsのシート参照はsheetIdに紐づくため、シート削除→リネームで全参照が壊れる",[40,353,354],{},"IBフォーマットを仕組みとして最終ステップに組み込むと、書式の統一を忘れない",[40,356,357],{},"gen_annual_table_core.pyの切り出しで、Excel版とSS版のロジック乖離を防げた",[78,359],{},[19,361,362],{"id":362},"関連記事",[37,364,365,369,373],{},[40,366,367],{},[73,368,76],{"href":75},[40,370,371],{},[73,372,124],{"href":123},[40,374,375],{},[73,376,165],{"href":164},{"title":378,"searchDepth":379,"depth":379,"links":380},"",2,[381,387,388,389],{"id":21,"depth":379,"text":21,"children":382},[383,385,386],{"id":25,"depth":384,"text":26},3,{"id":82,"depth":384,"text":83},{"id":129,"depth":384,"text":130},{"id":170,"depth":379,"text":170},{"id":340,"depth":379,"text":340},{"id":362,"depth":379,"text":362},"diary","CF精算表の自動生成パイプラインを一気通貫で構築。取引ライフサイクルモジュール（借入金・貸付金・資本政策）の拡張、年次推移表のデュアル出力対応、Chrome拡張での次年度繰越一括自動化と無限ループバグ修正を実施","md",{},true,"/2026-04-02-diary","daily-log",false,"2026-04-02T00:00:00.000Z",{"title":5,"description":391},"2026-04/2026-04-02/diary-2026-04-02",[402,403,404,405,406],"日記","CF精算表","Chrome拡張機能","Excel自動化","Google Sheets",null,"ZL418mq0s1GBIoMZXX4vGbxeBFB5UAasSRBv1B732TM",[],"https://log.eurekapu.com/favicon.svg",1775338204006]