巻物を探す
43件の巻物
GAS ウェブアプリが突然開けない — ブラウザ用ライブラリ混入と clasp の盲点を API 版比較と読み込みテストで潰す
直前デプロイで混入した minified ライブラリが Apps Script 起動時に例外を投げ全画面が死ぬ事故の診断・修正・再発防止。版番号指定の API 比較、GAS 相当グローバルでの読み込みテスト、clasp がリモート専用ファイルを消さない対処まで。
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。
Google Sheets API 2大落とし穴(append列ズレ/QUERY ORDER BY silent fail)
フィルタ有効シートへのvalues.append()が列ズレする罠と、QUERY()のORDER BYが型混在列で全行silent失敗する罠、それぞれの回避策
Google Drive のフォルダ整理を自動化を壊さず権限事故も出さずにやる
散らかった Drive を片付ける前に確認すべきこと。フォルダ移動は ID 不変なので安全だが、共有フォルダへ移すと権限が黙って広がる。簡易APIは権限を過少報告し、継承権限は子フォルダから削除できない。二重化を起こす名前検索の見分け方と、権限削除スクリプトの安全機構、再発源の潰し方まで。
シートに打合せ日時を書くだけでカレンダー予定+Meet発行+前日リマインドGmail下書き(Apps Script)
案件シートの日時列を15分巡回し、Calendar API v3でMeet付き予定を作成、前日9時以降に顧客宛リマインドを下書きで1回だけ作る。招待メール抑止・冪等キー・日時変更追従つき
GASウェブアプリが「読み込み中」で止まる・遅い — google.script.run の null 化と getValues 往復を計測で潰す
戻り値に Date が混ざると google.script.run が全体を null にする問題を JSON 文字列化で解消し、シート1枚ずつの getValues(1枚0.3〜1秒)を Sheets API batchGet に置き換えて約5秒→1秒にする。切り替え前に本番データで新旧を突き合わせ、日時シリアルの1ms誤差を丸める手順つき
数十GBの動画をGoogle Driveへ確実に入れる(Drive for Desktopが止まった時の直接アップロード)
Drive for Desktopのキャッシュ破損でサイズ0のまま止まる症状の見分け方と、Drive APIのresumable uploadで直接上げてサイズ照合するまでの手順
全世界公開になっていた共有ドライブ資料を、業務を止めずに締める
AIに読ませるため公開したまま放置されたDriveフォルダを、誰も締め出さずに安全に閉じる手順。未認証curlで公開を実証→正規共有を先に付与→anyoneだけ削除→塞がったことと業務が生きていることを両方実測する型。権限一覧APIが不完全という罠つき。
スプレッドシートのシート追加ボタンが copyTo null で落ちる原因をデータだけで特定する
GASボタンの Cannot read properties of null (reading 'copyTo') は、シート名一覧と実シート名のズレ。Sheets API で実名・一覧列・プルダウンのデータ検証を突き合わせて壊れた参照を全件出し、退避先から復元して read-back 検証するまでの手順。末尾スペース事故とバインド型スクリプトに到達できない制約も含む。
ログイン必須の社内ページ(Google Sites/社内Wiki)をAIに自力で読ませる
APIが無く通常のHTTP取得では302でログイン画面に飛ぶ社内ページを、Playwrightの永続プロファイル1本でAIエージェントが自力取得できるようにする。実測で踏んだWindows固有の致命バグ4件と回避策つき。
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分制限・並列検証の落とし穴
定期バッチの「全面書き戻し」が新規行を消す事故を、検知・修正・復旧する
スプレッドシートの定期更新バッチが開始時スナップショットを全面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 検証)で解く
LLMで既存スプレッドシート明細の更新案を作る — 本番で壊れない7か条(GAS)
議事録・メールからLLMに明細の更新案を作らせ、元シートの複製に元の行位置で書いて値貼付で反映できる形にする。rowIndex突合・行位置保持・空ブロック除去・非致命read-back・顧客文ガードなど本番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の夜間バッチを必ず完走させる設計(6分制限・再開・作り置き)
実行時間上限のある環境で長時間バッチが永久に完走しない3つの原因(リスト後方の飢餓・入力1件の変更で全チャンク破棄・自分の生成物を再入力)と、台帳による優先順/チャンク単位フィンガープリント/生成物除外での直し方。部分確定と失敗カウンタ期限切れ、検証手順つき。
スプレッドシート実行パネルの結果セルを必ずクリック可能にする(GAS)
GASでシートを操作パネルにした時、生成物リンクがセルに出ず別シートを探させてしまう問題の潰し方。URLキーの総なめ収集・RichTextで複数リンク・過去分の埋め戻し・再構築で消える罠・全走査で6分制限に当たってトリガが死ぬ罠まで。
「共有した雛形に書き込めない」問い合わせを消す — 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 後もトリガーが旧コードで動く罠までを規定。
鍵の無いPCから共有メールボックスでDriveのPDF添付つき返信を下書き→確認後に送信(GitHub Actions+ドメイン全体の委任)
SA鍵がGitHubシークレットにしかない環境で、DriveのPDFを添付した返信下書きを作り、人の確認後にdrafts.sendで送る手順。scope不足403と多重run事故の回避つき
GAS Web アプリが「アクセス権が必要です」で開けない時のデプロイ記録破損の診断と復旧
公開設定は正しいのに所有者でも403になるGAS Webアプリを、Bearer fetchの差分比較で切り分け、同versionのPUT再デプロイでURL不変のまま復旧する
GASで商品ページのURLから品名・説明・画像・価格を抜いて登録フォームを自動入力する(文字コード自動判定つき)
JSON-LD→OGP→title の3段抽出、ヘッダー/metaを信じず化け文字最少で復号(楽天EUC-JP実測)、画像はDriveに保存。Node/Playwright/実環境の検証手順と落とし穴つき
GAS Web App の「直したのに反映されない」を構造的に潰す
clasp push だけでは /exec に反映されず、--deploymentId 更新は成功表示のまま古いコードを配信し続ける。push→新規デプロイ→認証URL差し替え→疎通確認を1本化する型(PowerShell 5.1 の落とし穴込み)
機密列を含む共有スプレッドシートにAIを安全に書き込ませる型
パスワードや手書きメモと同居する管理表に、AIに本文を読ませずに自動更新させる実装型。許可リスト書込・見出し行の自動検出・行を奪わない突合・列順シャッフルの敵対的テスト・定期実行の引数固定まで。
大きいGoogleスプレッドシートをAIに全件読ませる(自然言語の書き出しは黙って切られる)
行数の多いシートはコネクタの自然言語書き出しだと途中で切れ、AIは成功と報告する。xlsxをbase64で取りZIPとして自力で開いて全件取り込む手順と、部分一致の誤ヒットを止めるガードまで。
サイトのGA4測定ID・Search Consoleプロパティを人に画面を開かせず特定する
公開GTMコンテナからの測定ID抽出と、DWD impersonateによる全量取得。HTTP 200でも権限範囲の一覧を全量と誤認する事故の検知方法まで。
Domain-Wide Delegation の許可済みスコープを管理画面を見ずにトークン取得で実測する
SAのDWDでスコープを1つずつ単独要求し unauthorized_client の有無で許可リストを確定。既存+追加の完全な値を管理者に渡し、反映もループで自動検知する
Googleユーザーデータを認証なしローカルアプリに出す — GAS→公開HTTPS橋渡し
自作ダッシュにGoogleタスク/カレンダー等を、アプリにOAuthを持たせずGAS→公開HTTPS ingestへPOST→ローカルキャッシュ→Widgetで表示。Web App公開/clasp run/SA不要。funnel実ポート確認・秘密の置き場・basePath・本番再ビルド等の実測ハマりどころ付き
google.script.run の null が undefined になる罠 — 本番だけ出る NaN 表示の自動検出
GASウェブアプリでサーバ側の null がブラウザで undefined になり、=== null の分岐が素通りして NaN が表示される。単体テストでもJSON fixtureでも再現しない理由と、null を落とした fixture で描き直して自動検出する方法。
稼働中の既存GASを、副作用を起こさずに検証してから本番反映する
定期実行中のApps Scriptに仕様変更を入れる手順。メール送信などの副作用を起こさずに実データでロジックを検証し、clasp push後にpullで突合するまでを機械判定で閉じる。clasp loginの認可URLが死ぬ罠、pullの拡張子違いで差分ゼロを誤認する罠つき。
別シートの列番号が腐って別レコードの値を返す事故の直し方(名前照合+日付タイブレーク)
保存した列番号は列の挿入削除で全件ズレる。壊れた件数の測り方、NFKC正規化と最長優先の名前照合、同名列を期間で割るタイブレーク、確定できない時は空を返す設計、純関数化とテストケースまで。
Googleドキュメントを AI に作らせる時の落とし穴 — 本文は更新できない前提で設計する
MCP等からGoogleドキュメントを作る運用で踏む4点(本文更新手段が無い/Markdown記号のエスケープ/サイズ値で成功判定できない/大きな読み返しはローカル保存)と、最初から決めておく6つの設計。
コンテナバインド型GASスクリプトを発見しDiscord Webhookメンションを安全にテストする
Drive検索/clasp listに出ないバインド型スクリプトをscriptIdから発見し、@here/@everyoneメンション変更を実チャンネルを汚さず検証する手順
GASの通知Botメンバーリストをスプレッドシート化する
Discord/Slack等への定期通知GASでハードコードされた宛先リストをスプレッドシート読込に置き換え、以後はコード編集不要にする。Drive全文検索がGAS編集直後は反映されない落とし穴も併記。