Excel講座の画面再現へのフィードバック対応:関数の活用5本の修正とCF精算表の列固定

開発eurekapu-nuxt4

Excel講座の画面再現へのフィードバック対応:関数の活用5本の修正とCF精算表の列固定

朝の予定は、前日の確認作業の続きだけだった。 それが終わるころには、CF精算表を映すエンジンに列の固定が入り、下半分の合計が画面左端の D 列へ引っ越していた。

前日の確認作業の続きから

Google タスクには「Excel関数の活用:画面再現の確認作業(残り18本)」が残っていた。 確認のところから続けるつもりで、Claude Code にタスクを読ませた。

空きメモリは 11.2GB あり、dev サーバー(3200)は止まっていたので、タスクの指示どおりに起動させた。 確認画面を Chrome で開くと、描画はされたものの、完了の記録とフィードバックの両方が読み込みに失敗した。 API はその時点で 200 を返しており、起動直後のコンパイル待ちでタイムアウトした可能性が高い。 再読み込みすると、if-keep-simple に付けたフィードバックも表示された。

if-keep-simple の末尾に数文足す

if-keep-simple へのフィードバックは、入れ子の IF を VLOOKUP に置き換える箇所はないか、という問いだった。 出てきた案のうち、1番目の「最後に数文足す(おすすめ)」を選んだ。 この案は表の並べ替えを伴うので、画面上の表と、台本の前半で基準の表を指している文も直すことになる。

表を小さい順に並べ替え、最後に VLOOKUP の近似一致の拍を足す形で、台本を書き換えさせた。 実物の Excel での検算では、3枚のシートの D、E、F の3列で、36セル中36セルが一致した。

合成を待つあいだに、音声なしの仮タイミングでレイアウトを見ようとすると、409 が返ってきた。 台本と音声が食い違っているあいだは再生を拒む作りなので、これは想定どおりである。 合成が終わってからのレイアウト検査は 547 時点すべてで通り、静止画も目で確かめた。

関数の活用のフィードバックを全部片付ける

関数の活用には、すでに全部のフィードバックを入れ、済んだものは完了にしてあった。 そこで、残りのフィードバックすべてへの対応を頼んだ。 フィードバックを言語化するタスクもあったはずなので、その途中の計画書も拾ってもらった。

最初に見つかった計画書は dev サーバーのメモリ対策で、別件だった。 探し直して出てきたのは「カメラの手直しの共通点」の計画書で、その決裁フォームを Chrome で開いてもらった。

フィードバックが付いたまま未完了なのは5本だった(if-keep-simple は対応済み)。 3本はサブエージェントに任せ、index-match-ex-row-column-multi は親のセッションで直させた。 合成には順番待ちができていて、エージェントのうち2体は、それぞれ自分のバックグラウンド処理(おそらく合成)を待って止まっていた。

エージェントの報告が返るたびに、報告の文面で終わらせず、静止画を開いて確かめさせた。

  • text-comment:悪い例では数式バーの計算部分が光り、良い例は E 列の増減率を参照する形になっていた
  • sumifs-matrix:撮り直した静止画に、9行目のチェックまで入っていた
  • iferror-ex-consolidation:報告が届いてから静止画を確認した

text-comment では、一点だけ判断を仰がれた。 フィードバックでは列名を「増減」と書いたのに、上がってきた版では見出しが「増減率」になり、中身も前期比の率(当期÷前期−1)になっていた。 コメントに引用する数字が前期比の%だから、という理由である。 差額の「増減」の列に変えるなら直す、と添えてあった。

5本とも、実物の Excel での検算、本人の声での合成、静止画の目視確認まで済み、残りはプレビューでの確認だけになった。 この時点では、まだコミットしていない。

ユニットテストのほうは、最後まで結果を返さなかった。 1回目の実行は 35 分を超えても出力がなく、そのプロセスだけを止めて、関係するテストをファイルごとに流し直させた。 それでも Vitest は何も出さずに止まり、1ファイルに絞って切り分けを始めたところで、作業は CF精算表へ移った。

CF精算表の総合演習で列を固定する

次に手を付けたのは、CF精算表の Step 7 である。 エンジンは行の固定には対応していたが、列の固定には対応していなかった。 ほかの動画をそのまま残せるように任意の設定(frozenCols)として足し、1本だけで試させた。

試す対象には、カメラを手で直していない cfws-step7c(総合演習 二年目)を選んだ。 7b には手直しが5か所あり、列の固定の効果と混ざってしまうからである。 frozenCols を指定しなければ、挙動は今までと同じになる。

固定なしの静止画と並べると、カメラが右へ動いても、C 列の科目名が画面に残り続けていた。 A〜C 列(科目名まで)を固定した版を、Chrome の前面タブで開いてもらった。

1.0倍と0.9倍を行き来するズーム

開いた 7c を見て、まず引っかかったのはズームだった。 詳細を説明するたびに、倍率が1倍とたぶん0.9倍のあいだを行き来する。 同じ数字を解説しているのに、画面だけが寄ったり引いたりしていて、この往復には意味がない。 これをなくしてほしいと頼んだ。

どの文でカメラが往復しているかを調べさせている途中で、事故が起きた。 比較用のコマンドに残っていた1行が、7c の変更を git stash で退避してしまったのである。 コマンドを止めて変更を戻し、stash の一覧が元どおりになったことを確かめさせた。 比較は、ファイルに触らない方法でやり直させた。

往復は「見えていれば動かさない」規則で消した。 回帰テストでは 50件中48件が一致し、不一致の2件はどちらも 7c だった。 7c 以外の CF精算表の動画は全コマが一致したので、列の固定もこの規則も、ほかの動画には影響していない。 7c の回帰記録は、プレビューで良しと判断してから取り直すことになった。

下半分の CF計算書が寄らない

続いて、画面のスクリーンショットを貼って追加の依頼を出し、下半分の見せ方に手を入れさせた。 下半分では、C 列に AO 列と同じ文字を参照式(=AO36)で出し、カメラが映す範囲から AO を外させた。 C 列の文字が固定の境目を越えて、スクロールする列へはみ出さないようにもした。

ここで一度、別の気になる点を片付けた。 Excel のシートを表示していない時刻になると、カメラ欄に「この時刻は全体図の画面ではないので手直しできません」という注記が出る。 これが縦に潰れて表示され、邪魔なので消してもらった。 画面から消えたことを確かめると、タイムラインも右端まで広がっていた。

作業に戻り、枠を狭めた variant を world ファイルに足して(既存の sumHl には触れない)、7c でだけ使わせた。 ところが枠を狭めても、画は寄らない。 カメラのまとまり(ブロック)が J〜AM 列にまたがったままだったからである。 下半分のブロックを営業、投資、財務と合計列に分けて、ようやく投資と財務はかなり寄れるようになった。 C 列には行の名前が常に出ていて、金額と名前が同じ画面で読める。 レイアウトの自動検査は 1496 時点すべてで通った。

合計の列を D 列へ寄せる

画面を見ていて、合計が遠い AM 列にあること自体が問題に思えてきた。 最初は H 列あたりへ持ってくることを考えたが、そこまで行かなくてもよい。 C の次の D はたぶんスペーサーで、E も普通に空いているはずである。 D 列までを固定にして、合計もそこへ寄せれば、もっとわかりやすくなるのではないか。

D 列まで固定し、下半分の合計を D 列に出す形で直させた。 D 列の数式と sumD の定義を足したところで、置換で壊れたテンプレート文字列が見つかった(tsc では検出されなかった)。 空きメモリは 2.5GB まで減っていたが、ページは応答していた。 dev サーバーは、途中で保存した壊れたファイルを読んで一度落ちていた。 ログを見ると、そのあと再起動していた。

直してみても、投資と財務の画はまだ寄らなかった。 カメラの値を追わせると、縦の SUM(小計)の枠が固定列の D へ移ったせいで、枠の範囲が D から始まっていた。 光らせたセルと同じく、固定列の中の枠も範囲の計算から外させた。 さらに、小計の文のように光る場所がすべて固定列に収まるときは、カメラが動く必要はないので、常にその場へとどめるようにした。

これで下半分は、0.67倍(営業)から1.0倍(投資、財務、期末の現金)へ移るだけになり、途中の往復は消えた。

最後に撮った静止画では、固定列のセルが消えていた。 CSS のルールの順番が逆で、z-index 2 のほうが勝っていた。 ルールを下へ移すと、正しく描画された。

回帰テスト(約20分)をバックグラウンドで流させると、110件中108件が一致した。 落ちた2件はどちらも 7c の全コマ比較で、7c 以外の CF精算表の動画はすべて全コマ一致した。 エンジンに入れた変更は、列の固定、固定列の重なり順、固定列の中を光らせたときの画の決め方、見えていれば動かさない規則の4つである。

コミットとプッシュ

最後にコミットとプッシュを頼んだ。 差分は、このセッションの変更だけだった。 7c の回帰記録は古い値のままで落ちていたので、コミットの了承をもって、7c のハッシュを今の状態で取り直させた。 Codex のコミットレビューを通してから 81dfa6eb をコミットし、プッシュした。 コミットに入れたのは今回変えた13ファイルだけで、ほかのセッションの未コミットの変更は含めていない。

振り返り

  • 下半分は、合計を D 列へ寄せ、固定列の中の光と枠をカメラの範囲計算から外したところで、0.67倍から1.0倍へ一度動くだけになった。同じ数字を説明しているあいだは、カメラを動かさない
  • 列を固定した途端、枠の範囲の計算と CSS の重なり順という、固定を前提にしていなかった箇所が順に顔を出した。静止画では、画が寄らない、セルが消える、という形で見えた
  • 比較用のコマンドに git stash が紛れ込むと、検証のつもりで変更を消しかける。比較はファイルに触らない方法でやる
#Excel講座#画面再現#Claude Code#サブエージェント#回帰テスト