巻物を探す
54件の巻物
LLMで既存スプレッドシート明細の更新案を作る — 本番で壊れない7か条(GAS)
議事録・メールからLLMに明細の更新案を作らせ、元シートの複製に元の行位置で書いて値貼付で反映できる形にする。rowIndex突合・行位置保持・空ブロック除去・非致命read-back・顧客文ガードなど本番6回で確定した設計
スプレッドシート実行パネルの結果セルを必ずクリック可能にする(GAS)
GASでシートを操作パネルにした時、生成物リンクがセルに出ず別シートを探させてしまう問題の潰し方。URLキーの総なめ収集・RichTextで複数リンク・過去分の埋め戻し・再構築で消える罠・全走査で6分制限に当たってトリガが死ぬ罠まで。
GAS Web アプリの画面をブラウザ操作なしで検証する(google.script.run 偽装・差し込み値置換・Sheets API 無効でも gviz で実データ)
ログイン必須の Apps Script Web アプリでも、index.html を Chromium で実描画して DOM を assert できる。偽 google.script.run は head に埋め込む(addInitScript は setContent で走らない)、サーバー差し込み値の置換、file:// が要る条件、Sheets API 無効時に OAuth トークンだけでタブ別 CSV を読む URL、書き込みはコマンドキューで read-back。
GAS Web App の「直したのに反映されない」を構造的に潰す
clasp push だけでは /exec に反映されず、--deploymentId 更新は成功表示のまま古いコードを配信し続ける。push→新規デプロイ→認証URL差し替え→疎通確認を1本化する型(PowerShell 5.1 の落とし穴込み)
大きいGoogleスプレッドシートをAIに全件読ませる(自然言語の書き出しは黙って切られる)
行数の多いシートはコネクタの自然言語書き出しだと途中で切れ、AIは成功と報告する。xlsxをbase64で取りZIPとして自力で開いて全件取り込む手順と、部分一致の誤ヒットを止めるガードまで。
google.script.run の null が undefined になる罠 — 本番だけ出る NaN 表示の自動検出
GASウェブアプリでサーバ側の null がブラウザで undefined になり、=== null の分岐が素通りして NaN が表示される。単体テストでもJSON fixtureでも再現しない理由と、null を落とした fixture で描き直して自動検出する方法。
GASデプロイ上限20エラーでもpushは反映済み — トリガーはHEADで動く
clasp deploy が20件上限で失敗しても push は通っており、時間トリガーは HEAD を使うので反映済み。/exec だけ旧版。判定と古いデプロイの整理手順
GAS完全自動化テンプレ — Driveコマンドキュー方式
Google Apps Script の「毎回エディタで▶実行」を根絶。Drive 経由のコマンドキューで、初回1クリック以降は AI がすべての GAS 関数をリモート実行できるようになるテンプレート指示書。
人間の手入力台帳を壊さずに自動更新する — GAS Web App upsert 設計
各PC/各拠点の点検結果を、人間が手運用しているスプレッドシート台帳へ自動反映する。手入力列とコメントを絶対に壊さない突合設計、タブ/列の解決、並行POST対策、配布シークレットの落とし穴まで。
数式まみれの業務スプレッドシートを、Webアプリから壊さずに編集させる型
ArrayFormula と per-row 数式が混在する台帳を、セル単位 allowlist・dry-run 既定・適用前バックアップ・触っていないセルの数式不変検査で安全に書き換える設計手順。列ごとの数式復元と、テストが緑のまま壊れる典型例つき。
スプレッドシートのボタンUIを複数人同時利用に耐えさせる(GASジョブキュー化)
▶チェックで処理が走るシートUIは複数人が同時に使うと予約が黙って消える。1押下=1キュー行+対象ごとにシート分離+claimワーカーで直す設計と、script lockの奪い合い・6分制限・並列検証の落とし穴
既存のGoogleフォームへGASから自動送信し、回答シートでread-back検証する
人が手入力しているフォームを業務システムから自動送信して手作業を消す。entry IDの取り出し、メール収集欄の罠、回答タブはgidで特定、getLastRow()が実データを超える罠、反映52秒に耐える非同期確認、off/test/liveの3段ゲートまで。
スプレッドシートに心拍を書く死活監視の6つの罠(0930→930の自動変換・重複行・死活と業務状態の混同)
GAS+シートで作る死活監視で、スロット0930が数値化して偽missingになる・重複行が最新を隠す・業務警告で常時赤になる等を、正規化関数と3分類記録で直す手順
定期バッチの「全面書き戻し」が新規行を消す事故を、検知・修正・復旧する
スプレッドシートの定期更新バッチが開始時スナップショットを全面setValuesで書き戻すと、その間に挿入された行が無痕跡で消える。間欠的でエラーも出ないこの事故について、真因の確定、競合検知による修正、消えた分の洗い出しと復旧までを一続きで行う手順。洗い出しで必ず踏む偽陽性4類型と、二重照合・dry-run・read-backの型つき。
GAS+スプレッドシートで数値・日付が静かに壊れる3つの罠と回避策
セルの表示形式とタイムゾーンに起因して、例外も出さずにデータが壊れる3パターン(TZ不一致/文字列の日付自動変換/列拡張時の書式引き継ぎ)の回避策と修復手順。単体テストでは検出できない層のバグを早期発見するための3原則つき。
Apps Script ダイアログを本人の Google 承認に依存させない — 「承認が必要です」全滅をWebアプリfetchフォールバックで塞ぐ
bound script のダイアログ内 google.script.run が複数アカウント同時ログインで承認エラーになる構造問題を、文脈のテンプレ埋め込み+開発者権限 Web アプリへの fetch フォールバック(dedup・CORS・外部オリジン Playwright 検証)で解く
Google Drive のフォルダ整理を自動化を壊さず権限事故も出さずにやる
散らかった Drive を片付ける前に確認すべきこと。フォルダ移動は ID 不変なので安全だが、共有フォルダへ移すと権限が黙って広がる。簡易APIは権限を過少報告し、継承権限は子フォルダから削除できない。二重化を起こす名前検索の見分け方と、権限削除スクリプトの安全機構、再発源の潰し方まで。
スプレッドシートを業務UIにする — フェーズ折りたたみ+2種チェックボックスのパネル
Google Sheets を現場の操作画面にする GAS 設計テンプレ。工程ごとに行グループで畳み、押すと走る▶と進捗として残る✅を同居させる。可視列とメタ情報の衝突、無言で捨てる保存関数、集計が古い値で固まる順序ミス、6分制限との戦い方まで、実装で実際に踏んだ罠を対策込みで収録。
スプレッドシートとGAS Web Appを画面操作ゼロで作成・公開し、外部アプリからHTTPで1行upsertする
clasp のトークンだけで、スプレッドシート作成→バインドされた Apps Script 作成→コード投入→Web App 公開まで REST で完結させる手順。DBを契約せず0円で「フォーム入力→通知→表に蓄積→月次集計」を実現する。人手は実行権限の承認1回だけ。未承認とポリシー禁止の切り分け、シート作成直後の未フラッシュで初回だけ壊れる罠、CSVエクスポートがread-backに使えない罠、再デプロイでURLとシークレットを変えない状態ファイル設計、後片付けまで含む検証スクリプトの型を実測ベースで収録。
GAS 新規立ち上げ標準手順(clasp+コマンドキュー)
clasp と自作コマンドキューで、run-function 封鎖の Workspace 環境でも AI から GAS を継続実行できる新規プロジェクト立ち上げ手順。人間の作業は setupOnce の1クリックのみ。ホワイトリスト実行・並走防止・機密値の置き場も規定。
スプレッドシート業務アプリに画面キャプチャ付き不具合報告フォームを付ける(GAS)
GASのOverGridImageにgetBlob()が無くシート貼付画像は読めない。HTMLダイアログでCtrl+Vを受ける正しい設計・記録列マイグレーション・read-back検証・画像を捨てない後片付けまでの実装指示書
GASウェブアプリが「読み込み中」で止まる・遅い — google.script.run の null 化と getValues 往復を計測で潰す
戻り値に Date が混ざると google.script.run が全体を null にする問題を JSON 文字列化で解消し、シート1枚ずつの getValues(1枚0.3〜1秒)を Sheets API batchGet に置き換えて約5秒→1秒にする。切り替え前に本番データで新旧を突き合わせ、日時シリアルの1ms誤差を丸める手順つき
GASの夜間バッチを必ず完走させる設計(6分制限・再開・作り置き)
実行時間上限のある環境で長時間バッチが永久に完走しない3つの原因(リスト後方の飢餓・入力1件の変更で全チャンク破棄・自分の生成物を再入力)と、台帳による優先順/チャンク単位フィンガープリント/生成物除外での直し方。部分確定と失敗カウンタ期限切れ、検証手順つき。
「共有した雛形に書き込めない」問い合わせを消す — Googleフォーム→本人専用ドキュメント自動発行(GAS)
雛形リンク配布をやめ、フォーム入力から本人専用のGoogleドキュメントをGASで自動発行・共有する。原本は閲覧のみのまま、権限リクエストと問い合わせをゼロにする手順とWorkspace固有の罠
本番スプレッドシートの既存セルへ一括書き込みする前に、現況を全件実測して上書き規則を決める型(GAS)
「登録したらこのセルに自動で値を入れて」は、そのセルが空である前提で降ってくる。実際は見出しやマニュアルリンクが入っており、setValue を流すと全レコード分を一撃で潰す。判定を純関数に切り出して dryRun で全件の現況をダンプし、実測結果を依頼者に見せて上書き規則を確定してから書く手順。read-back verify、6分上限の offset/limit 分割、付帯機能の非致命化、Calendar Advanced Service での会議URL発行とスコープ追加時の実測挙動まで。
外部アプリがフォーム連携シートに行を足すと通知が飛ばず埋もれる問題を潰す(GAS)
フォームの onFormSubmit は直接 appendRow では発火せず、挿入行は回答追加のたびに押し下げられ、担当者名も空になる。3症状を「フォーム外の書き込み」という一因で捉え、列マップ確定・通知・名寄せまでアプリ側で完結させる実装指示書。
「Driveからファイルを名前で探して画面に貼る」機能が実データで1件も当たらないのを潰す
台帳依存・探索の深さ不足・MIME絞りすぎの3つの落ち方を特定し、親フォルダ走査がドライブのルートを掴む誤検出と、途中で落ちて画面が空になる事故まで塞ぐ。副作用ゼロの診断関数で実データ検証する。
GAS 開発の絶対ルール(clasp統一・キュー・read-back)
.gs/appsscript.json/.clasp.json を編集すると自動適用される GAS 開発ルール集。clasp push 統一、コマンドキュー方式、書き込み後の read-back verify、silent ignore 対策、push 後もトリガーが旧コードで動く罠までを規定。
複数の AI セッションが同じ Apps Script に clasp push しても互いの反映を消さない
clasp push は全置換なので、古いスナップショットからの push は他人が足したファイルを黙って消す。pull→上書き→push の連続化、別ディレクトリでの read-back、消された側が並行相手の staging に同乗させる復旧手順。
数十GBの動画をGoogle Driveへ確実に入れる(Drive for Desktopが止まった時の直接アップロード)
Drive for Desktopのキャッシュ破損でサイズ0のまま止まる症状の見分け方と、Drive APIのresumable uploadで直接上げてサイズ照合するまでの手順
鍵の無いPCから共有メールボックスでDriveのPDF添付つき返信を下書き→確認後に送信(GitHub Actions+ドメイン全体の委任)
SA鍵がGitHubシークレットにしかない環境で、DriveのPDFを添付した返信下書きを作り、人の確認後にdrafts.sendで送る手順。scope不足403と多重run事故の回避つき
本番スプレッドシートに「新しいレコードの列ブロック」を安全に増やす型(GAS)
横並び1レコード=N列のシートに、既存ブロックの複製で新しい列ブロックを自動追加する型。数式の相対参照追従・IMPORTRANGEの絶対URL差し替え・日付セルのread-back照合の罠・本番検証用の撤去コマンドまで。
GAS Web アプリが「アクセス権が必要です」で開けない時のデプロイ記録破損の診断と復旧
公開設定は正しいのに所有者でも403になるGAS Webアプリを、Bearer fetchの差分比較で切り分け、同versionのPUT再デプロイでURL不変のまま復旧する
GAS ウェブアプリが突然開けない — ブラウザ用ライブラリ混入と clasp の盲点を API 版比較と読み込みテストで潰す
直前デプロイで混入した minified ライブラリが Apps Script 起動時に例外を投げ全画面が死ぬ事故の診断・修正・再発防止。版番号指定の API 比較、GAS 相当グローバルでの読み込みテスト、clasp がリモート専用ファイルを消さない対処まで。
GASで商品ページのURLから品名・説明・画像・価格を抜いて登録フォームを自動入力する(文字コード自動判定つき)
JSON-LD→OGP→title の3段抽出、ヘッダー/metaを信じず化け文字最少で復号(楽天EUC-JP実測)、画像はDriveに保存。Node/Playwright/実環境の検証手順と落とし穴つき
GASアプリ群への不具合報告フォーム横展開 — 各アプリを匿名公開せず共通フォーム1本へリンクする
機微データを持つ・スコープを触れない・画面が無い、で止まる横展開を、フォームをパラメータ化して共通1本に集約する方式で全部さばく。器の選び方で人間のクリックを0回にする方法と、文字化け・公開範囲の検証3点まで。
共有作業ツリーから本番Apps Scriptを巻き戻さず部分pushする
本番をclasp pull→変更ファイルだけ重ね→差分表示→push→read-back検証→デプロイを1コマンドで行い、他人の新しい本番コードの巻き戻しとエージェントのBlind Apply拒否を防ぐ
「保存しましたと出るのに保存されない」は定期同期の上書きを疑う(GAS)
時間トリガーの取り込みが画面で直した値を元表の既定値へ静かに戻す不具合の切り分け・修正・本番検証の手順
全世界公開になっていた共有ドライブ資料を、業務を止めずに締める
AIに読ませるため公開したまま放置されたDriveフォルダを、誰も締め出さずに安全に閉じる手順。未認証curlで公開を実証→正規共有を先に付与→anyoneだけ削除→塞がったことと業務が生きていることを両方実測する型。権限一覧APIが不完全という罠つき。
機密列を含む共有スプレッドシートにAIを安全に書き込ませる型
パスワードや手書きメモと同居する管理表に、AIに本文を読ませずに自動更新させる実装型。許可リスト書込・見出し行の自動検出・行を奪わない突合・列順シャッフルの敵対的テスト・定期実行の引数固定まで。
サイトのGA4測定ID・Search Consoleプロパティを人に画面を開かせず特定する
公開GTMコンテナからの測定ID抽出と、DWD impersonateによる全量取得。HTTP 200でも権限範囲の一覧を全量と誤認する事故の検知方法まで。
Domain-Wide Delegation の許可済みスコープを管理画面を見ずにトークン取得で実測する
SAのDWDでスコープを1つずつ単独要求し unauthorized_client の有無で許可リストを確定。既存+追加の完全な値を管理者に渡し、反映もループで自動検知する
スプレッドシートのシート追加ボタンが copyTo null で落ちる原因をデータだけで特定する
GASボタンの Cannot read properties of null (reading 'copyTo') は、シート名一覧と実シート名のズレ。Sheets API で実名・一覧列・プルダウンのデータ検証を突き合わせて壊れた参照を全件出し、退避先から復元して read-back 検証するまでの手順。末尾スペース事故とバインド型スクリプトに到達できない制約も含む。
Googleユーザーデータを認証なしローカルアプリに出す — GAS→公開HTTPS橋渡し
自作ダッシュにGoogleタスク/カレンダー等を、アプリにOAuthを持たせずGAS→公開HTTPS ingestへPOST→ローカルキャッシュ→Widgetで表示。Web App公開/clasp run/SA不要。funnel実ポート確認・秘密の置き場・basePath・本番再ビルド等の実測ハマりどころ付き
本番共有スプレッドシートを壊さず一括更新する型(GAS)
複数人が使っている本番シートに対し、AIが担当者名の一括置換や誤登録行の削除を安全に行うための設計。dryRun→照合キー付き適用→独立read-backの3段と、GASのコード雛形・実際に踏んだ落とし穴つき。
稼働中の既存GASを、副作用を起こさずに検証してから本番反映する
定期実行中のApps Scriptに仕様変更を入れる手順。メール送信などの副作用を起こさずに実データでロジックを検証し、clasp push後にpullで突合するまでを機械判定で閉じる。clasp loginの認可URLが死ぬ罠、pullの拡張子違いで差分ゼロを誤認する罠つき。
GASの時間主導トリガーがデプロイ版に固定される罠 — 「成功したのに何も起きない」の切り分け
clasp push しても時間主導トリガーは旧バージョンのコードを実行し続ける。エラーも出ず戻り値もOKなため原因が特定できない。新関数プローブで実行中のコードを確定させ、clasp deploy -i でURLを変えずに直す手順。
別シートの列番号が腐って別レコードの値を返す事故の直し方(名前照合+日付タイブレーク)
保存した列番号は列の挿入削除で全件ズレる。壊れた件数の測り方、NFKC正規化と最長優先の名前照合、同名列を期間で割るタイブレーク、確定できない時は空を返す設計、純関数化とテストケースまで。
ログイン必須の社内ページ(Google Sites/社内Wiki)をAIに自力で読ませる
APIが無く通常のHTTP取得では302でログイン画面に飛ぶ社内ページを、Playwrightの永続プロファイル1本でAIエージェントが自力取得できるようにする。実測で踏んだWindows固有の致命バグ4件と回避策つき。
Googleドキュメントを AI に作らせる時の落とし穴 — 本文は更新できない前提で設計する
MCP等からGoogleドキュメントを作る運用で踏む4点(本文更新手段が無い/Markdown記号のエスケープ/サイズ値で成功判定できない/大きな読み返しはローカル保存)と、最初から決めておく6つの設計。
GASの通知Botメンバーリストをスプレッドシート化する
Discord/Slack等への定期通知GASでハードコードされた宛先リストをスプレッドシート読込に置き換え、以後はコード編集不要にする。Drive全文検索がGAS編集直後は反映されない落とし穴も併記。
GAS Webアプリ バーコードラベル印刷(iOS AirPrint対応)
Google Apps ScriptのWebアプリからBrother等のラベルプリンタへ印刷する際、iOS AirPrintが連続ロールのカット長を無視する問題をjsPDF生成で回避する実装パターン
Google Sheets API 2大落とし穴(append列ズレ/QUERY ORDER BY silent fail)
フィルタ有効シートへのvalues.append()が列ズレする罠と、QUERY()のORDER BYが型混在列で全行silent失敗する罠、それぞれの回避策
GAS Webアプリの同時アクセスクォータエラー対策
複数人利用のGoogle Apps ScriptアプリでSpreadsheetApp.openByIdが同時呼び出しエラーになる問題を、リトライ+バックオフ+ジッターのラッパー関数で解消する手順