KOKOCAL SCRIPT

Guide

スプレッドシート追記型差分同期の使い方

Googleフォーム回答や追記型の管理表を、IMPORTRANGEではなくApps Scriptで値として同期するためのガイドです。 生成されるスクリプトは同期元シートを変更せず、管理情報を専用シートに分けて安全に差分同期します。

公開日: 2026年8月1日更新日: 2026年8月6日
追記型・行位置固定

Googleフォーム回答や末尾追記の管理表を、行の並びを保ったまま同期します。

ヘッダー範囲を自動同期

同期先が白紙の場合、元シートのヘッダー行から連続列を読み取り、対象列を自動判定します。

同期対象外方式

削除や行移動など前提外の変更は同期先へ削除反映せず、安全停止または対象外として扱います。

このツールでできること

このツールは、同期元スプレッドシートの行を同期先スプレッドシートへ値としてコピーするApps Scriptを生成します。 初回は既存行をまとめて同期し、2回目以降はフォーム送信、最終行への手動追記、行の貼り付けを自動検知して処理します。

同期は一方向です。同期先で編集した内容を同期元へ戻すことはなく、双方向同期や競合解決は行いません。

標準方式は「追記型・行位置固定」です。同期元シートへID列、更新日時列、バージョン列などを追加しないため、 Googleフォーム回答シートの列構造を壊さずに導入できます。

KOKOCAL SCRIPTのMVP機能は無料で利用できます。ログインは不要です。フォームに入力したファイルID、シート名、列名、設定内容、生成スクリプトはサーバーへ保存しません。

使えるシートの条件

操作扱い補足
最終行への新規追加許可Googleフォーム回答、新規手入力、末尾への貼り付け
既存行のセル値修正許可変更行と変更列をキューに登録
列追加条件付き許可マッピング外の列は無視。必要なら設定を作り直す
フィルタ表示・行非表示許可実際の行順を変えない操作に限る
並び替え・行移動禁止行位置の対応が崩れるため安全停止の対象
途中行への挿入・物理削除禁止既存行番号が変わるため安全停止の対象
同期元シートの削除・再作成禁止sheetIdが変わるため完全再構築が必要

同期開始後に行を並び替えたり、途中へ行を挿入したり、既存行を物理削除したりすると、元行と同期先行の対応が崩れます。 その場合、生成スクリプトは推測で同期せず、安全のため停止します。

削除に関する扱いは同期対象外方式に固定しています。同期元で削除や前提外の変更が発生しても、同期先の既存データは削除しません。

同期元・同期先と処理条件の指定

元スプレッドシートURLまたはID

同期元ファイルを指定します。URLを貼ってもIDだけでも使えます。

元データシート名

フォーム回答シートや通常の元データシート名を入力します。

同期先スプレッドシートURLまたはID

値を書き込む先のスプレッドシートを指定します。

同期先シート名

同期先ファイル内の出力先シート名を入力します。同期先で編集した内容は同期元へ反映されません。

同期先の状態

白紙または新規作成なら列マッピング不要です。元シートのヘッダーがある連続範囲を自動で同期します。既存シートへ同期する場合だけ列マッピングを指定します。

列マッピング

同期先が既に構築済みの場合に使います。元ヘッダー名、元列、同期先列を指定します。

バッチ件数

初回同期や通常同期で一度に処理する件数です。大きすぎる値はApps Script制限に近づきます。

再処理チェック間隔

即時同期できなかったキューや一時エラーの再処理を、何分ごとに確認するかを指定します。通常の変更はイベント発生時にも同期を試みます。

同期対象外方式

同期元の行削除や前提外の変更は、同期先へ削除反映しません。同期先データを保護するため、安全停止または同期対象外として扱います。

同期先が白紙の場合は、元シートのヘッダー行を左から読み取り、空白ヘッダーが出る前までの連続列を自動同期します。 v2.0仕様では、ID列、更新日時列、バージョン列の入力は不要です。

導入手順

  1. 1

    同期元と同期先を用意する

    同期元はGoogleフォーム回答シートや、末尾に行を追加して使う通常シートを想定します。同期先シートは値のコピー先として使います。同期は同期元から同期先への一方向です。

  2. 2

    フォームに必要事項を入力する

    スプレッドシートID、シート名、列マッピング、バッチ件数を入力します。同期元シートにID列や管理列を追加する必要はありません。

  3. 3

    注意事項を確認してスクリプトを生成する

    追記型・行位置固定の前提を確認し、利用規約に同意するとApps Scriptを生成できます。

  4. 4

    Apps Scriptへ貼り付ける

    元データ側スプレッドシートのApps Scriptへ生成されたKOKOCAL_Menu.gsとKOKOCAL_IncrementalSync.gsを貼り付け、KOKOCAL_IncrementalSync_setupを実行します。管理用シートは同期元ファイル内に非表示で作成されます。

  5. 5

    元スプレッドシートを再読み込みする

    KOKOCAL_IncrementalSync_setupの実行後、元データ側スプレッドシートを再読み込みします。再読み込みすると、上部メニューのKOKOCAL内に差分同期の項目が表示されます。

  6. 6

    初回同期を実行する

    メニューの初回同期で既存データを同期先へ値として書き込みます。以降はフォーム送信や手動編集イベントをキューに入れて差分同期します。

メニュー内の「初期設定を再実行」は、KOKOCAL_IncrementalSync_setupと同じ初期化処理です。 通常は初回セットアップ後に何度も押す必要はなく、管理用シートやトリガーを作り直したいときに使います。 管理用シートは非表示で作成されるため、通常のシートタブには表示されません。

導入ガイドを保存する

スクリプト生成後は、生成結果カラム右上の「導入ガイドをダウンロード」から、導入方法、導入後確認事項、生成スクリプト、設定JSONをまとめて保存できます。 ページを離れると生成結果は消えるため、Apps Scriptへ貼り付ける前に保存しておくと、作業途中でも内容を見返しやすくなります。

導入後確認事項

上部メニューを確認する

KOKOCAL_IncrementalSync_setupを実行してスプレッドシートを再読み込みしたあと、上部メニューのKOKOCAL内に差分同期の項目が表示されるか確認します。

初回同期を少ない件数で確認する

初回はバッチ件数を控えめにし、同期先へ値だけが書き込まれること、同期元のシート構造が変わらないことを確認してください。

管理用シートを確認する

非表示の管理用シートとトリガーが作成されているか確認します。通常運用では管理用シートを直接編集しません。

注意事項

行数が減った、対象シートのsheetIdが変わった、行位置が崩れた疑いがある場合、スクリプトは PAUSED_INTEGRITY_ERROR として停止します。これは誤った行へ書き込まないための保護です。

復旧するときは、同期元の状態を確認してから「完全再構築」を実行します。完全再構築では、同期先と _SYNC_INDEXを元データから作り直します。

並び替え、途中行への挿入、物理削除、同期元シートの削除や再作成は前提外です。誤った行へ書き込まないため、検知時は安全停止します。

準備ができたらジェネレーターへ

条件に合うシートであれば、フォームへ設定を入力してApps Scriptを生成できます。

ジェネレーターを開く