業務効率化・自動化に使えるスクリプトを、フォーム入力だけで生成できる無料サービス。

KOKOCAL SCRIPT

Guide

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

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

追記型・行位置固定

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

ヘッダー範囲を自動同期

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

同期対象外方式

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

無料・ログイン不要・安心して使えるセキュリティ設計

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

同じ設定を後で使いたい場合は、生成画面の「設定保存」からJSONファイルとして手元に保存し、 「設定読込」から復元できます。

このツールでできること

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

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

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

使えるシートの条件

操作扱い補足
最終行への新規追加許可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へ生成されたCode.gsを貼り付け、setupSyncSystemを実行します。管理用シートは同期元ファイル内に非表示で作成されます。

  5. 5

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

    setupSyncSystemの実行後、元データ側スプレッドシートを再読み込みします。再読み込みすると、上部メニューにKOKOCAL差分同期が表示され、「初期設定を再実行」などのメニューを使えるようになります。

  6. 6

    初回同期を実行する

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

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

導入ガイドを保存する

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

導入ガイドに含まれる内容

導入方法、導入後確認事項、生成スクリプト、設定JSON、設定ハッシュをまとめて記載します。導入方法の冒頭には、生成スクリプトが下部にあることも明記します。

保存形式

Markdown形式(.md)、Word形式(.docx)、PDF保存用画面を選べます。社内共有や作業記録にも使いやすい形式です。

設定JSONだけを残したい場合はJSONタブを使います。導入手順や確認事項も含めて残したい場合は、導入ガイドを保存してください。

安全停止と復旧

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

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

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

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

ジェネレーターを開く