スプレッドシートを誤って消されても戻せるよう毎日自動でバックアップしたい
先に結論
壊れたら、変更履歴で前の版を「コピーを作成」し、必要な部分だけ貼り戻します。
今後はApps Scriptで毎日コピーを作り、古い控えはゴミ箱へ移します。
- 壊れたら、最終編集アイコンから変更履歴を開く
- 「この版を復元」はファイルがその版に戻る
- 前の版を「コピーを作成」し、必要な列だけ貼り戻す
- 今後に備え、毎日コピーを作るコードを貼る
- setupTrigger を1回実行して許可する
- 毎日、新しい日付の控えが1つ加われば完了
※2026年10月時点の公式情報に基づきます。

1変更履歴から一部だけ取り出す
- 右上の最終編集アイコンを押す(編集権限が必要)
- 右のパネルで、壊れる前の版の横のその他アイコン → 「コピーを作成」
- 名前と保存場所を決めて「OK」
- コピーから必要なセル範囲だけをコピーし、元のファイルへ貼る(壊れた後の正しい編集を上書きしない)
「この版を復元」はファイルがその版に戻り、セル単位の編集履歴も消えます。
出典: ファイルの変更内容を確認する
2毎日コピーを残すコードを貼る
- マイドライブに控え用フォルダをシートごとに1つ作り、開いた時のアドレスの folders/ の後ろの文字列(この記事の案内)をIDとして控える
- 元のスプレッドシートで「拡張機能」 → 「Apps Script」
- 下のコードに置き換え、1行目にIDを入れて保存
- プルダウンで setupTrigger を「実行」(実行は1人だけ)し、続けて backupDaily も1回実行して控えができるか見る
const FOLDER_ID = 'ここにフォルダID';
const KEEP = 14; // 残す数
function backupDaily() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const folder = DriveApp.getFolderById(FOLDER_ID);
const prefix = '控え_' + ss.getName() + '_';
const stamp = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyyMMdd_HHmm');
DriveApp.getFileById(ss.getId()).makeCopy(prefix + stamp, folder);
const list = [];
const it = folder.getFilesByType(MimeType.GOOGLE_SHEETS);
while (it.hasNext()) {
const f = it.next();
if (f.getName().startsWith(prefix) && !f.isTrashed()) list.push(f);
}
list.sort((a, b) => b.getDateCreated() - a.getDateCreated());
list.slice(KEEP).forEach((f) => f.setTrashed(true));
}
function setupTrigger() {
ScriptApp.getProjectTriggers().forEach((t) => {
if (t.getHandlerFunction() === 'backupDaily') ScriptApp.deleteTrigger(t);
});
ScriptApp.newTrigger('backupDaily').timeBased().atHour(3).everyDays(1).create();
}
setupTrigger で毎日3時台(スクリプトのタイムゾーン)に backupDaily が動きます。承認で「このアプリは確認されていません」と出たら「詳細」→「(プロジェクト名)に移動(安全ではありません)」で進みます(自分で貼ったコードの時だけ)。会社・学校のアカウントは管理者の承認が要る場合があります。
出典: Gmail と Google スプレッドシートでメールへの差し込みを作成する / Class ClockTriggerBuilder / インストール可能なトリガー / チームの休暇カレンダーを作成する
古い控えは消さずにゴミ箱へ
KEEPの数を超えた古い控えゴミ箱
名前が「控え_元のファイル名_」で始まるものだけを作成日の新しい順に数える
移した控えは30日以内ならドライブのゴミ箱で右クリック→「復元」でき、過ぎると完全に削除されます。
出典: Google ドライブで削除したファイルを復元する
フォルダを複数シートで共用すると、「売上」の実行が「売上_2025」の控えも移します。