Excel講座キーボードショートカット章のフィードバック修正:計画書と引き継ぎから、置換ダイアログと結合セルの再現まで
Excel講座キーボードショートカット章のフィードバック修正:計画書と引き継ぎから、置換ダイアログと結合セルの再現まで
朝7時前の時点で、Excel講座のキーボードショートカット章のフィードバックを、最後まで書き終えていた。
dev の確認画面(/dev/excel-scene)で、区間ごとに付けるフィードバックである。
全25区間のうち、7区間にフィードバックが付いていた。
書いたものが直れば、それで終わりになるはずだった。 ところが昼前になっても、私はまだ区間を1本ずつ確認していた。
修正計画を作り、引き継ぎをダウンロードフォルダへ
まず Claude Code に、フィードバックを直すための計画書を1本作らせた。 フィードバックの保存先を探させ、F5(ジャンプ)や「セルの書式設定」のダイアログ、リボンのキーヒント表示の既存部品も調べさせた。 書式は、前日の同種の計画書に合わせてもらった。
書き上がった計画書は Codex にレビューさせた。 返ってきたのは、「共通の部品を直すだけでは、全講座でリボンが光るようにはならない」という指摘である。 指摘は妥当だったので、全台本から Alt キーの経路を洗い出す方針に変え、節の順番も入れ替えた。 直したあと、Codex の承認が出た。
計画書には、私が決めることが5つあった。 HTML 版の計画書に埋め込まれた選択ボタンで5つとも答え、07:10 に送信した(コメントは付けていない)。 回答は計画書の §3 に記録された。
実行は別のセッションに回すことにした。
次のセッション用の引き継ぎプロンプトを、ダウンロードフォルダにテキストファイルで出してもらった。
ファイル名は keyboard-shortcuts-feedback-handoff-20261003.txt である。
本物の Excel を観察してから直す
8時21分、新しいセッションに引き継ぎファイルのパスを貼った。 最初に取りかかったのは、再現の見本集めである。 録画からジャンプのダイアログのコマを切り出させ、本物の Excel で撮った13枚の画像も確かめてもらった。
さらに、UI Automation で Excel のメニューとダイアログを読み取る探査スクリプトを用意させ、実行した。 キーは送らず、画面の構造だけを読む作りである。 途中で印刷ダイアログを誤って開いてしまい、それを閉じる処理が止まった。 いったん片付けてやり直すと、ジャンプ、セルの書式設定、保存確認の3つの画面が取れた。
そこから先は、計画書の Step に沿って進めてもらった。
- リボン:Alt キーの経路を新しいモジュールにまとめ、配線の前にテストを書いた。ボタンのクラス名
menuがドロップダウンの.menuのスタイルとぶつかっていたので、名前を変えた。右端の「編集」グループが枠からはみ出したので、使っていない「並べ替え」ボタンを外し、色見本を Excel と同じく「その他の色」の上に置いた - ダイアログ:3種類を足した。台本の書き換えで
$$がString.replaceによって$1つに潰れたので、Edit で直した。分類と種類の一覧が見切れていたので、行の高さを詰めた - 行と列の選択:選択範囲の出し方を
selectRowsとselectColsにそろえ、キーボード講座の台本全体へ広げた - 基本講座の6本:Alt → E → S の操作を Alt → H → V → S に移した
- 最初の Alt 操作の速さ:38本のうち23本で、1キーあたり約1秒より速く押していた。この23本を遅くした
営業利益の数式を変えた c04-s00 は、作業用のブックを作り直して本物の Excel で確かめた。 数式は2件中2件、入力値は8件中8件が一致した。
別セッションのコミットと音声合成の順番待ち
Step 1〜4 のコードをコミットさせようとして、引っかかった。
deskScene.ts と ExcelDeskStage.vue が、変更の一覧に出てこない。
調べさせると、並行して動いていたマインドマップのセッションのコミット(478435af)が、このセッションで Claude Code に進めさせた編集を巻き込んでいた。
その結果、HEAD はまだコミットしていない ribbon.ts を読み込む状態になっていた。
すぐに残りをコミットさせて(5f18015b)、HEAD の整合を取った。
音声合成も、思うように進まなかった。 語りを替えた8区間を順に合成する予定だったが、最初の c03-s03 が7分以上たっても終わらない。 合成のロックを並行セッションの合成が握っていて、こちらは後ろで順番を待っていた。
メモリ不足で止まった5つの処理
順番を待っているうちに、メモリが足りなくなった。 9時39分の時点で、裏で動いていた処理がメモリ不足を理由に Claude Code 側で5つとも止められていた。 止まったのは、dev サーバー(:3200)、8区間の音声合成、単体テスト2回分、待機用のコマンドである。
c03-s03 の合成は失敗していた。 音声の速さを整える ffmpeg が、終了コード 3221225794(0xC0000142、DLL の初期化失敗)で落ちていた。 この PC で以前メモリが足りなくなったときと同じコードなので、同じメモリ不足が原因という見立てだった。
止まった処理は勝手に再起動しない決まりなので、判断が私に回ってきた。 使っていないアプリを閉じてから、起動し直してほしいと頼んだ。
dev サーバーを立ち上げ直し、c03-s03 だけを前面で合成させると通った。 残りの7本も1本ずつ順に流し、8件中8件が終わった。 本人の声の時刻でリボンのテストを流し直すと、240件中240件が通った。 これで計画書の Step 0〜7 がすべて終わった。
直したフィードバックを閉じる
修正が終わったら、対応済みのフィードバックは閉じておきたい。 閉じないと、まだ残っているフィードバックがどれなのか、見分けがつかなくなる。 そこで、最新版が改善を加えたフィードバックは閉じ、確認画面の「フ」の印は薄く残して、完了したことが分かるようにしてほしいと頼んだ。
フィードバックの記録には、もともと「完了」の欄がなかった。
本番 D1 にある dev 専用の表に、列を1本足してもらった。
過去の 0012 と 0013 も migrations apply ではなく直接実行で入れていたので、同じく d1 execute --file を使い、ほかの未適用分を巻き込まないようにした。
閉じるためのスクリプトも書かせ、ドライランで動作を確かめてから実行した。 閉じたのは、今回対応したキーボード講座の7区間で、計8回分のフィードバックである。 残りの35回分は別の講座のもので、今回は触っていない。 ブラウザで見ると、閉じた区間の「フ」は薄くなり、フィードバック欄には閉じた時刻と「完了」が出ていた。 動画制作のページの案内にも、同じ表示を入れた。
確認すべき区間は39本
ここで、自分が何を見ればいいのかを整理したくなった。 このセッションで確認すべき URL を、確認済みのものも含めて全部出してもらった。 10時30分の時点で39区間、そのうち確認済みが12区間、残りが27区間である。
残りを再生していくと、また直したいところが出てきた。
置換タブでダイアログからはみ出すオプション
基本講座の basic-c03-s00 で、検索と置換のダイアログを「置換」タブに切り替えると、オプションが枠からはみ出していた。
スクリーンショットを貼り、ダイアログ全体を大きくすればいいのではないかと伝えた。
置換タブが出る区間は6つあった。 オプションを開いた状態と閉じた状態の両方で代表のコマを書き出して確かめ、置換タブのときだけダイアログの幅を 760px から 900px に広げた。 下に並ぶ6つのボタン(オプション、すべて置換、置換、すべて検索、次を検索、閉じる)が、枠の中に収まった。 検索タブはボタンが少なく、もともと収まっていたので、幅を変えていない。
結合したセルに透けるグリッド線
もう1つは、セル結合がダメな理由を説明する区間の表である。 「食品」と「日用品」のように結合したセルの中に、グリッド線が見えていた。 本物の Excel では、結合すれば中の線は消える。
最初の修正を静止画で確かめると、隣り合う2つの結合ブロックの境目の線まで消えていた。 グリッド線の位置が、想定とずれていたのである。
線の描かれている位置を調べると、各セルの内側の最後の1ピクセルに引かれていた。 そこで、結合セルに白い背景を敷くとき、位置(x と y)はそのままにして、幅と高さだけを 1px 縮めることにした。 これで中を通る線は隠れ、外側の枠の線は残った。
計画書の進捗を締める
昼前、計画書の作業はひととおり終わったと判断し、進捗を更新してもらった。
Step 0〜7 は完了とし、そのあとの置換タブと結合セルの直しも書き足した。
途中で1行の数え違いがあり、basic-c02-s02 が確認済みだったので一覧を直した。
11時40分の時点で、39区間のうち22区間が確認済み、残りは17区間である。 コードの修正は、計画書の上では終わった。 けれども、その17区間を再生し終えるまで、この章は閉じられない。
学び
- 音声合成がメモリ不足で落ちたあと、不要なアプリを閉じて1本ずつ順に合成し直したら、8件中8件が通った
- 結合セルの覆いは、グリッド線がセルの内側の最後の1ピクセルにあると分かってから合った。位置はそのままにして、幅と高さを 1px 縮める
- フィードバックに「完了」の状態を持たせると、閉じていないフィードバックがどれかを画面で見分けられる