[{"data":1,"prerenderedAt":261},["ShallowReactive",2],{"content-/excel-course-video-tts-and-functions-restructure":3,"all-pages-for-dir":241,"related-/excel-course-video-tts-and-functions-restructure":242,"og-image-/excel-course-video-tts-and-functions-restructure":260},{"id":4,"title":5,"body":6,"category":219,"concepts":220,"description":221,"extension":222,"meta":223,"navigation":224,"ogImage":220,"path":225,"project_name":226,"published":227,"publishedAt":228,"seo":229,"source":230,"stem":231,"tags":232,"todo":220,"unpublished":227,"updatedAt":220,"__hash__":240},"pages/2026-09/2026-09-24/excel-course-video-tts-and-functions-restructure.md","Excel講座の動画化：TTSの読み替えルールを決め、Excel操作の再現シーンで関数の章を組み直す",{"type":7,"value":8,"toc":206},"minimark",[9,13,17,21,24,27,30,33,36,40,43,46,50,53,56,59,62,66,69,72,80,84,87,90,93,97,100,103,129,136,139,150,153,157,172,178,185,192,195,203],[10,11,5],"h1",{"id":12},"excel講座の動画化ttsの読み替えルールを決めexcel操作の再現シーンで関数の章を組み直す",[14,15,16],"p",{},"9月24日は、朝から夕方まで Excel 基礎講座の動画化を進めた。\n朝は、本人の声で作る合成音声の読みを1語ずつ聞き比べた。\nその後、Excel を模した画面で数式のタイピングまで再現する試作を開いた。\n相対参照と絶対参照の説明が、講座の本文よりむちゃくちゃ分かりやすかった。\nでは、本文のほうはどこまで作り直せばいいのか。\nこの日の後半の作業は、ほぼこの問いに引っ張られた。",[18,19,20],"h2",{"id":20},"制作画面に印が出ない",[14,22,23],{},"朝いちばんに、動画の制作画面（excel-render）を開いた。\n前日に、区間ごとに印（タグ）を付ける処理を足したはずなのに、何も出ていない。\n印の保存先は Cloudflare の D1 で、前日のマイグレーションでテーブルを2本作ってあった。\nClaude Code に原因を調べてもらっている途中で、自分が別のページを見ていただけだと分かった。\n印はちゃんと付いていたので、調査はそこで止めた。",[18,25,26],{"id":26},"関数名と貸借対照表の読みを聞き比べる",[14,28,29],{},"関数名を本人の声で合成すると、読みが揺れる。\nそこで、関数名15語と指摘済みの2件について読みの候補を並べ、計72本を合成して聞き比べるページを作ってもらった。\n改善の計画書を Codex のレビューにかけると、「致命的」判定の指摘が1件出た。\n合成に渡した文字は manifest に残るのに、シードが残らないという点である。\n対策を書き足したら、再レビューは「承認」になった。",[14,31,32],{},"聞き比べて、FALSE は「フォールス」ではなく「フォルス」だと判断した。\n横棒は要らない。\n「フォルス」を 14-C として足してもらい、比べられるように「フォールス」も残した。\nルールは「Excel の関数名はすべてカタカナで合成に渡す」に統一した。",[14,34,35],{},"貸借対照表の読み6通りを聞いていて、別の考えが浮かんだ。\n貸借対照表は、バランスシートや BS と呼ぶほうが一般的である。\nそれなら音声はバランスシートで統一し、冒頭に「貸借対照表は BS、つまりバランスシートと言い換えて解説する」という読み替え表を置けばいい。\nその補足は合成でなくてもよく、自分が普通に喋って録音すれば済む。\n合成でうまくいかない表記はうまくいく読み方に合わせ、冒頭で読み替えを示す。\nこの方針を計画書の冒頭に書いてもらい、「読み方について」の区間をイントロダクションの2つ目のチャプターとして足した。\n最初は関数名の表も入れていたが、財務諸表の略称の対応表に作り直し、32秒の区間になった。",[18,37,39],{"id":38},"_5万3千の3千だけがさんせんになる","「5万3千」の「3千」だけが「さんせん」になる",[14,41,42],{},"大きい桁の数字も、8通り（18-A〜H）の書き方で聞き比べた。\n算用数字に漢字の単位を付けた書き方は、ほとんどうまくいった。\nただ1つ、19-H の「5万3千」だけは「3千」を「さんせん」と読む（正しくは「さんぜん」）。\n「千」だけの問題かを切り分けるため、同じく音が変わる三百（さんびゃく）、六百（ろっぴゃく）、八百（はっぴゃく）、八千（はっせん）もまとめて合成してもらった。",[14,44,45],{},"聞き直すと、「5万3,000」はうまくいった。\n「5万三千」と「5万さんぜん」も通る。\n運用しやすいのは、カンマを入れてその部分だけ数字にする書き方だろうという気がした。\nとはいえ、ほかと比べて例外的な処理すぎる。\n困ったので、ルールの線引きは Claude Code に任せた。\nそれまでの判定をまとめると、数字だけの表記（1100 や 1,000,000 など）は、1万を超えると全滅していた。\n決まったルールで台本の正本を14か所書き換え、単体テスト172件が通ったのを確かめてから、89区間とイントロの音声を作り直してもらった。",[18,47,49],{"id":48},"_89区間の作り直しとメモリ不足","89区間の作り直しとメモリ不足",[14,51,52],{},"作り直しは、9時半前後に終わる見込みだった。\nところが、65/89 区間目で合成が止まった。\nパソコンの空きメモリが 1.4GB（32GB 中）まで減り、Claude Code がバックグラウンドの処理を止めたためである。\n同じ時間に、別のセッションが「絶対参照を忘れると壊れる」例の試作で音声合成を動かし、8.5GB を使っていた。\nGPU を使う合成が、2本同時に走っていた。",[14,54,55],{},"その別セッションからは、自分の同時実行が引き金になった可能性が高いという知らせが届いた。\n向こうの合成が 08:51 に終わると、こちらの作業中は GPU を使う合成を流さないという連絡も来た。\n08:59 に65区間目から再開し、すべての合成は 09:58 に終わった。\n594ファイルを退避してから、音声を差し替えた。",[14,57,58],{},"差し替えた区間にも印を付けてほしいと頼んだ。\n完了にしていたかどうかに関係なく、音声を作り直した区間には「再」を付け、聞いて完了にすると「完」に変わるようにしてもらった。\n朝は印が付かないと思い込んでいたが、昼前には印の種類を1つ増やしていた。",[14,60,61],{},"止まった理由を聞いて、GPU を増設しても変わらないのかが気になった。\nちょうど別のセッションで、GPU の増設を検討していたところである。\n最初の答えは「本体のメモリ（RAM 32GB）が足りないのが原因で、GPU のメモリではない」だった。\n本体のメモリは、空きスロットに 16GB を2枚足せば 64GB にできるという。\nただ、非公開でまとめていた記事を読ませてから合成プロセスを実測させると、VRAM は 7.8GB／8GB でほぼ満杯だった。\n「GPU を増設しても変わらない」は言い過ぎだったと、訂正が入った。",[18,63,65],{"id":64},"excelを模した画面はどうやって作っているのか","Excelを模した画面は、どうやって作っているのか",[14,67,68],{},"並行する別のセッションでは、講座の MP4 を DD（デューデリジェンス）してもらっていた。\nいまの MP4 の約6割（200区間中116区間）は、記事の本文を画面に映し、同じ内容を言い換えて読み上げ、字幕にも出していた。\n同じ情報が、画面と音声と字幕の3か所に重なっている。\nその報告書と一緒にできたのが、Excel を模した画面（excel-scene）の試作だった。",[14,70,71],{},"まず、どうやって作っているかを教えてもらい、ドキュメントに入れてもらった。\n図にすると、台本1か所から、画面と音声と検証用 Excel が同じ計算で作られる流れになる。\nせっかくの画面なので、画面に合わせて語りを書き直し、音声も作り直してもらった。\n本番とはずれるが、ここはテストとして割り切った。\nできたのは、本人の声による4分34秒の動画と、同じ内容の検証用 Excel（.xlsx）である。\n試作ページから .xlsx をダウンロードできる。\n吹き出しが出る瞬間も取りこぼさないよう、検査は字幕の時点だけでなく、画面の状態が変わる全時点に広げた。\n543時点すべてで問題はなく、数式の見た目も36セルすべて一致した。",[14,73,74,75,79],{},"この説明を読めば、新しいセッションでも作り方が分かるのか。\n試しに、CF精算表を作るプロセスを同じ画面で動画にする作業を、別のセッションに渡すことにした。\nドキュメントの足りない点を補ってもらい、渡すプロンプトはダウンロードフォルダのテキストファイル（",[76,77,78],"code",{},"2026-09-24_cfws-excel-scene-handoff-prompt.txt","）に書き出してもらった。",[18,81,83],{"id":82},"関数の活用の66区間をサブエージェント5体で読み直す","関数の活用の66区間を、サブエージェント5体で読み直す",[14,85,86],{},"講座の MP4 のコンテンツは、もともと Codex に作ってもらったものだった。\n試作が置き換えたのは c00-s10 の「実例」1区間だけで、Web 教材の文章はほとんど変わっていない。\n動画のほうが明らかに分かりやすいなら、文章そのものを変えたほうがいい。\n削除や追加を伴うはずなので、まず全区間を1つずつ読み、報告書にまとめてもらうことにした。",[14,88,89],{},"見直しは、Opus 5.5 のサブエージェント5体に章を分けて任せた。\n担当は、絶対参照と相対参照（13区間）、IF と IFERROR と TEXT（14区間）、SUMIFS と ROUND と INDIRECT（16区間）、INDEX/MATCH（13区間）、VLOOKUP（10区間）の合計66区間である。\n重い読み込みはサブエージェント側で済むので、親のセッションのコンテキストはほとんど増えない。",[14,91,92],{},"上がってきた誤りは、親のセッションで元の文章と突き合わせてもらった。\n「$C4 を行固定」という逆の説明、番地の誤り、脱字は、どれも元の文章にそのとおりあった。\nINDEX/MATCH の担当は、数値を実物の Excel で検算していた。\n動画の MATCH は照合の種類を 1（近似一致）にしていて、表の一部では誤った値や #N/A が出る。\n映っていた結果は、偶然合っていただけだった。\nROUND の「百の位で四捨五入」は、「百の位まで残す」とも「十の位を四捨五入する」とも読める。\nこれは誤りと言い切らず、表記の曖昧さとして扱った。\n報告書は6体目のサブエージェントにまとめさせ、HTML にして Chrome で開いてもらった。",[18,94,96],{"id":95},"_63区間への組み直しを段ごとに承認して進める","63区間への組み直しを、段ごとに承認して進める",[14,98,99],{},"報告書をもとに、組み直しの計画書を作ってもらった。\n新しい構成は63区間で、そのうち31区間を再現動画にする。\n判断の要る項目は7件あり、計画書の HTML に埋め込んだ判断フォームで答えた。\n推奨と違う答えを4つ選んだ。\n計画書は Codex のレビューに4回かけ、「実行可能」の判定を得た。",[14,101,102],{},"そこからは、段ごとに承認して進めた。",[104,105,106,110,113,116,119,126],"ul",{},[107,108,109],"li",{},"段①：要確認の12件に、組み直しの前に確かめる3件を足した計15項目を、実物の Excel と一次資料で確かめた",[107,111,112],{},"段②：誤り55件のうち、画面の文字で直せる38件を直した。語りの誤り15件は後の段へ回し、2件は画面の構成ごと変える",[107,114,115],{},"段③：区間 ID を新しくした。本番の D1 への UPDATE 8件と R2 への音声の複製は、自分が承認してから実行してもらった",[107,117,118],{},"段④：演習ファイル4組を作り、実物の Excel で全セルを期待値と突き合わせた",[107,120,121,122,125],{},"段⑤：再現エンジンに、F4 を押すたびに ",[76,123,124],{},"=B2 → =$B$2 → … → =$B2"," と切り替わる動きを足した。実物の Excel で 24/24 一致した",[107,127,128],{},"段⑥：c00 の7区間と演習02 を、再現動画に作り直した",[14,130,131,132,135],{},"段④のあとには、リンク切れが1件見つかった。\n絶対参照の演習02の解答ファイルである。\nR2 の中身と Dropbox の原本が同じだと確かめてから、正しい名前 ",[76,133,134],{},"EXCEL_演習絶対参照_02_after.xlsx"," で R2 に上げ直してもらった。",[14,137,138],{},"13区間の音声の作り直しでは、また合成が止まった。\n最初の2区間で1文あたり約8秒だった合成が、約27秒まで遅くなった。\n4区間まで進んだところで、メモリ不足のため、Claude Code がバックグラウンドの処理を3つまとめて止めた。\n再開するときは、1区間ずつ前面で流し、区切りごとに空きメモリを確かめるやり方に変えてもらった。\n空きメモリは一時 3.7GB まで下がったが、13区間の合成は最後まで通った。\n技術検査は 66/66 本が問題なしだった。\n差し替えた79ファイルのほかに、基本機能の音声2595ファイルが変わっていないこともハッシュで確かめた。\nR2 へのアップロード（81件）も、自分が承認してから上げてもらった。",[14,140,141,142,145,146,149],{},"段⑥では、静止画を見ながら見た目を直していった。\n表が小さいと画面の左上に収まって余白が目立つので、シートの見せ方に「最大倍率」を足した。\n",[76,143,144],{},"$"," の4つの形は、表を縦に5段積むと文字が約11px になるので、2×2 に並べ替えた。\n1文の中に句点が2つある文を合成が2文に分けてしまい、台本と音声の文数がずれることもあった。\n該当箇所は、全シーンで分割した。\n後半の4本には、失敗の数式を先に見せ、同じセルで直す操作を足した。\nたとえば ",[76,147,148],{},"#VALUE!"," が出る数式を見せてから、同じセルで F4 を使って直す。\n実物の Excel での突き合わせは、前半が 12/12、1/1、5/5、24/24、後半が 85/85 で、解答ファイルとも89セルが一致した。",[14,151,152],{},"その先の組2 の2本と、組3 の最初の4本（組3a）も、この日のうちに再現動画になった。\n組3 は14区間と聞いていたが、計画書、付録、対応表の3つとも12区間で、14は Claude Code の数え違いだった。\n組3a では、科目名だけで MATCH を引くと、S社の行に P社の数字が黙って返る場面を見せ、連結したキーで直した。\n実物の Excel でも 9/9 一致した。",[18,154,156],{"id":155},"引き継ぎはダウンロードフォルダのテキストファイルで渡す","引き継ぎは、ダウンロードフォルダのテキストファイルで渡す",[14,158,159,160,163,164,167,168,171],{},"関数の章の組み直しは、4つのセッションをリレーした。\n08:06 のセッションが最初の引き継ぎプロンプトを ",[76,161,162],{},"C:\\Users\\numbe\\Downloads\\2026-09-24_functions-restructure-handoff-prompt.txt"," に書き出し、10:25 のセッションがそれを読んで計画書を作った。\n以降は ",[76,165,166],{},"-2","、",[76,169,170],{},"-3"," と番号を振ったファイルで渡した。\n新しいセッションには、そのパスを1行貼るだけで済む。",[14,173,174,175,177],{},"13:11 のセッションでは、段⑤のコミットが終わったところで、コンテキストが71%に達していた。\nそのまま進むか切り替えるかを聞くと、段⑤で区切りがよく、段⑥は長くなるので、今切り替えるほうがいいという答えだった。\n計画書に「いまの状態」を書いてコミットしてから、",[76,176,170],{}," を書き出してもらった。",[14,179,180,181,184],{},"並行するセッション同士は、メッセージで状態を知らせ合っていた。\n音声を作り直したセッションは、コミット（",[76,182,183],{},"bed09799","）が済んで未コミットの変更が無いことを、計画書を作るセッションに伝えた。\n再現エンジンを触っていた別セッションは、エンジンをコミットし、それらのファイルはもう触ってよいと連絡してきた。",[14,186,187,188,191],{},"ただ、同じ作業ツリーを共有しているので、ぶつかる場面もあった。\n別セッションのコミット中に ",[76,189,190],{},".git/index.lock"," が残っていたときは、消さずに待った。\nscenes.ts では、別セッションの import 3行と自分の1行が同じ差分の塊に混ざった。\nHEAD に自分の変更だけを当てたものを作り、それをインデックスに入れてもらった。\n組2 の登録は、CF精算表の Step 5 を進めるセッションが scenes.ts を main に合流させるのを待った（先方の見込みで約10分）。\nこちらの変更が scenes.ts に入っていると、先方の合流が止まってしまうからである。",[18,193,194],{"id":194},"振り返り",[104,196,197,200],{},[107,198,199],{},"合成でうまくいかない表記は、合成の側を直そうとするより、うまくいく読み方に台本を合わせ、冒頭の読み替え表で断るほうが話が早い。FALSE の「フォルス」もバランスシートも、そうやって決まった",[107,201,202],{},"画面に映っていた MATCH の結果は、近似一致のまま偶然合っていただけだった。見た目が正しくても、実物の Excel で全セルを突き合わせる工程を段ごとに入れておく",[14,204,205],{},"組3 の残り8区間は、エンジンに近似一致の MATCH と VLOOKUP、XLOOKUP、列の挿入を足すところから始まる。",{"title":207,"searchDepth":208,"depth":208,"links":209},"",2,[210,211,212,213,214,215,216,217,218],{"id":20,"depth":208,"text":20},{"id":26,"depth":208,"text":26},{"id":38,"depth":208,"text":39},{"id":48,"depth":208,"text":49},{"id":64,"depth":208,"text":65},{"id":82,"depth":208,"text":83},{"id":95,"depth":208,"text":96},{"id":155,"depth":208,"text":156},{"id":194,"depth":208,"text":194},"dev",null,"本人の声の音声合成で、関数名や「5万3千」の読みを聞き比べてルールを決めた。Excelを模した再現画面の試作が本文より分かりやすかったので、関数の活用の66区間をサブエージェント5体で読み直し、63区間への組み直しを段ごとに進めた。","md",{},true,"/excel-course-video-tts-and-functions-restructure","eurekapu-nuxt4",false,"2026-09-24T00:00:00.000Z",{"title":5,"description":221},"make-diary","2026-09/2026-09-24/excel-course-video-tts-and-functions-restructure",[233,234,235,236,237,238,239],"Excel","音声合成","TTS","動画制作","Claude Code","サブエージェント","日記","5_FYo5Y8ohoHvBJOXX6OPJqq9Qt5VYmPftrSwnPmdtM",[],[243,246,250,254,257],{"title":244,"path":245,"publishedAt":228},"Claude Codeの並列セッションでExcel操作動画を作る：CF精算表講座をStep 2〜5まで進めた一日","/cashflow-worksheet-video-parallel-sessions",{"title":247,"path":248,"publishedAt":249},"Excel講座の画面再現動画をレビューしやすくする：カメラ固定、数式バーの可視化、確認済みステータスのCloudflare保存","/excel-scene-review-ui-tuning","2026-09-26T00:00:00.000Z",{"title":251,"path":252,"publishedAt":253},"2026年9月25日の開発日記 - 並行セッションがメモリを取り合い、関数の章をMacへ送った","/2026-09-25-diary","2026-09-25T00:00:00.000Z",{"title":255,"path":256,"publishedAt":253},"Excel操作動画のレッスン画面をミラーカラムに直す：自動再生とdev限定カード、CF精算表Step 7のカメラ調整","/excel-scene-mirror-column-autoplay-step7-camera",{"title":258,"path":259,"publishedAt":228},"2026年9月24日の開発日記 - Excel講座とCF精算表の動画化を並列セッションで進め、TTSの読みを台本側で決めた","/2026-09-24-diary","https://log.eurekapu.com/og/blog/excel-course-video-tts-and-functions-restructure.png?v=2026-09-24T00%3A00%3A00.000Z&title=Excel%E8%AC%9B%E5%BA%A7%E3%81%AE%E5%8B%95%E7%94%BB%E5%8C%96%EF%BC%9ATTS%E3%81%AE%E8%AA%AD%E3%81%BF%E6%9B%BF%E3%81%88%E3%83%AB%E3%83%BC%E3%83%AB%E3%82%92%E6%B1%BA%E3%82%81%E3%80%81Excel%E6%93%8D%E4%BD%9C%E3%81%AE%E5%86%8D%E7%8F%BE%E3%82%B7%E3%83%BC%E3%83%B3%E3%81%A7%E9%96%A2%E6%95%B0%E3%81%AE%E7%AB%A0%E3%82%92%E7%B5%84%E3%81%BF%E7%9B%B4%E3%81%99&author=Kei%20Komatsu&sig=e551434401e14013",1790469281065]