「保存しましたと出るのに保存されない」は定期同期の上書きを疑う(GAS)
時間トリガーの取り込みが画面で直した値を元表の既定値へ静かに戻す不具合の切り分け・修正・本番検証の手順
約4.5万トークンの節約 (API料金換算で約68円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。
この巻物について
「「保存しましたと出るのに保存されない」は定期同期の上書きを疑う(GAS)」は、Google WorkspaceカテゴリのAI指示書(MDファイル)です。時間トリガーの取り込みが画面で直した値を元表の既定値へ静かに戻す不具合の切り分け・修正・本番検証の手順この巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約4.5万トークン(API料金換算で約68円)・75%のトークンを節約できます。
- カテゴリ
- Google Workspace
- 対応AI
- claude-code、cursor、codex-cli
- ライセンス
- 商用利用可 (再販不可)
- 価格
- 無料
- ゼロから開発時
- 約6万トークン
- この巻物使用時
- 約1.5万トークン
- 節約量
- 約4.5万トークン (約68円)
- 更新日
- 2026-10-06
使い方 (AIに渡す3つの方法)
いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。
claude "https://makimono-md.vercel.app/api/v1/files/gas-11/raw を読み込んで、この指示書どおりに実装して"
中身
「保存しましたと出るのに保存されない」は、定期同期による上書きを先に疑う(GAS / スプレッドシート)
症状
- 画面で値を変えると「保存しました」と出る。少し後に見ると元の値に戻っている。
- 保存処理を単体で叩くと成功し、直後に読み直しても新しい値が入っている。
- エラーログは出ない。
原因の型
時間トリガー(例: 毎分のキュー処理の中で、30分おきに実行する取り込み)が、外部の元表から作った値と既存行を比べ、違えば上書きする。 比較対象に「画面で手直しできる列」が入っていると、利用者の変更は「元表と違う」と判定され、次の同期で静かに戻される。
切り分け手順(AI に読ませてそのまま実行できる粒度)
- 本番データを直接読み、対象行の値を確認する。全件が「自動で決まる既定値」と一致していれば、上書きを強く疑う。
- 書き込み先の列名・列定数を grep し、画面の保存処理以外にその列へ書く関数を全部挙げる(
<列定数>.<列名>] =の形)。 - 挙がった関数のうち、時間トリガー経由で呼ばれるものを確かめる(
ScriptApp.newTriggerと、そのハンドラから呼ばれる関数)。 - 本番で再現する: 値を変更 → 同期関数を強制実行(間隔制限を無視する引数があれば使う)→ 読み直す。戻れば原因確定。
直し方
- 同期の比較・上書き対象から、利用者が手で直せる列を外す。
- ただし「元表側の前提が変わったとき」(例: 開催地が変わった)だけは、既定値へ追随させる。判定は純粋関数に切り出して単体テストを書く:
// 前提(開催地)が同じなら既存値を残し、変わったときだけ既定値に追随する。
function importedValue(existingKey, existingValue, newKey, defaultValue) {
return String(existingKey || "") === String(newKey || "") ? String(existingValue || "") : String(defaultValue || "");
}
- 同期側の「変更なし」判定にも、この関数の結果を使う(使わないと毎回「更新」扱いになり、他の列まで再計算で上書きされる)。
- 画面側: 保存後に再読込しない作りなら、手元の状態(state)も更新する。しないと、タブを切り替えたときに古い値が出て「また戻った」と誤報告される。
検証
- 単体テストで「前提が同じなら維持」「前提が変わったら追随」の両方を押さえる。
- デプロイ後、本番で 変更 → 同期を強制実行(結果が「更新 0」)→ 読み直しで値が残ることを確認する。
- 試験で変えた行は元に戻す。
注意
- 修正前に戻された利用者の変更は復元できない。利用者に入れ直しを依頼する。
- 同じ構造の列がほかにも無いか確かめる(再計算で上書きされる数量列など)。今回直さない列があれば、記録に残す。
よくある質問
+「「保存しましたと出るのに保存されない」は定期同期の上書きを疑う(GAS)」とは何ですか?
時間トリガーの取り込みが画面で直した値を元表の既定値へ静かに戻す不具合の切り分け・修正・本番検証の手順
+どれくらいトークン(費用)を節約できますか?
ゼロから開発すると約6万トークンかかりますが、この巻物を使えば約1.5万トークンで済みます。差し引き約4.5万トークン(API料金換算で約68円)・75%の節約です。
+どうやって使いますか?
無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。
+どのAIツールに対応していますか?
claude-code、cursor、codex-cli に対応しています。
+商用利用できますか?
ライセンスは「商用利用可 (再販不可)」です。
🤝 自分でAIを動かすのは、まだ不安…という方へ
この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。
関連する巻物
GAS完全自動化テンプレ — Driveコマンドキュー方式
Google Apps Script の「毎回エディタで▶実行」を根絶。Drive 経由のコマンドキューで、初回1クリック以降は AI がすべての GAS 関数をリモート実行できるようになるテンプレート指示書。
人間の手入力台帳を壊さずに自動更新する — GAS Web App upsert 設計
各PC/各拠点の点検結果を、人間が手運用しているスプレッドシート台帳へ自動反映する。手入力列とコメントを絶対に壊さない突合設計、タブ/列の解決、並行POST対策、配布シークレットの落とし穴まで。
数式まみれの業務スプレッドシートを、Webアプリから壊さずに編集させる型
ArrayFormula と per-row 数式が混在する台帳を、セル単位 allowlist・dry-run 既定・適用前バックアップ・触っていないセルの数式不変検査で安全に書き換える設計手順。列ごとの数式復元と、テストが緑のまま壊れる典型例つき。
この巻物、誰かのトークンも救えます
𝕏 で節約レシートをシェア