GASでGoogleドライブのファイル版管理を簡単に

GASでGoogleドライブのファイル版管理を簡単に

記事
IT・テクノロジー
おじさんだ。今日はGoogleドライブの「ファイル版管理」をGASで効率的に行う方法を共有するぜ。中小企業の経営者さんやフリーランスの皆さん、日々の業務効率化に役立ててくれよな。

「ファイル版管理」って何?と思った方も多いだろう。要はGoogleドライブ上のファイルを複製して「いつの状態か」が分かる形で保存し、必要に応じて過去のバージョンに戻せる仕組みのことだ。Googleドキュメントやスプレッドシートのバージョン履歴はあるけど、ファイルごとに「タイムスタンプをつけて保存したい」ケースも多いはず。

おじさんが今回紹介するスクリプトは、

・元ファイルを上書きしない
・一度に複数ファイルの版管理が可能(batch write)
・入力検証で誤操作を防止
・バックアップファイルを新規作成し、復元も可能
・Googleアカウントの利用枠内で追加料金なし(Apps Scriptのクォータ・実行上限はある)
というポイントを押さえている。ただし、ファイル削除系APIは使わない。既存ファイルの中身を消したり、シートを削除したりはしないので安全だ。


■ 初期設定と必要権限

・GoogleドライブにアクセスできるGoogleアカウントが必要。
・Google Apps Scriptのプロジェクトを作成し、以下のスクリプトを貼り付ける。
・実行時に「Googleドライブのファイルの管理」権限を求められるので許可する。
・installable trigger(時間主導型など)で自動実行も設定可能。
・個人情報はスクリプト内に保存しない。ファイル名・フォルダ名などの情報のみ扱う。
・復元は作成したバックアップファイルを手動またはスクリプトで元のフォルダにコピーし直す形で対応する。


■ 具体的なコード例

以下は、指定したフォルダ内のファイルをすべてコピーし、「バックアップ_YYYYMMDD_HHmmss」という名前の新規フォルダを作って保存するスクリプト例だ。対象ファイルの拡張子やサイズもチェックする入力検証付きだ。

function createBackupVersions() {
const folderId = 'バックアップ対象フォルダのIDをここに'; // 例: '1AbCdEfGhIjKlMnOpQrStUvWxYz'
const backupRoot = DriveApp.getFolderById(folderId);

// 入力検証:フォルダの存在チェック
if (!backupRoot) {
throw new Error('指定されたフォルダが見つかりません。IDを確認してください。');
}

// バックアップ用フォルダ名を日時付きで作成
const timestamp = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyyMMdd_HHmmss');
const backupFolderName = 'バックアップ_' + timestamp;
const backupFolder = DriveApp.createFolder(backupFolderName);

// バックアップするファイルの拡張子(例:.xlsx, .docx)
const allowedExtensions = ['xlsx', 'xls', 'docx', 'doc', 'pdf', 'txt'];

// バッチ処理でまとめてファイルコピー
const files = backupRoot.getFiles();
let backupCount = 0;
while (files.hasNext()) {
const file = files.next();
const name = file.getName();
const ext = name.split('.').pop().toLowerCase();

// 入力検証:対象ファイル拡張子のみコピー
if (!allowedExtensions.includes(ext)) {
continue; // スキップ
}

// コピーして新フォルダへ保存(既存ファイルは変更しない)
file.makeCopy(name, backupFolder);
backupCount++;
}

Logger.log(`${backupCount} 個のファイルを ${backupFolderName} フォルダにバックアップしました。`);
}


■ バックアップファイルからの復元手順

バックアップファイルは新規フォルダに保存されているので、以下のように復元できる。

・Googleドライブでバックアップフォルダにアクセス。
・復元したいファイルを選択し、元のフォルダにコピーまたは移動。
・手動で名前を調整して上書き防止。
・複雑な復元作業を自動化したい場合は、別途復元用GASを作成してもよい。


■ 導入によるコスト削減イメージ(仮定)

おじさんの計算式を参考にしてくれ。

・バックアップ作業にかかる時間:1回あたり10分
・手動バックアップ頻度:週1回
・月間作業時間削減:10分 × 4週 = 40分
・時給3000円のスタッフの場合、月間コスト削減額=40分 ÷ 60 × 3000円 = 2000円
つまり、GASで自動化すれば年間約2.4万円の人件費削減効果が見込める計算だ。ただし、これはあくまで仮定の計算式であり、保証や実績ではないので注意してほしい。


■ まとめ

・Google Apps ScriptはGoogleアカウントの利用枠内で使えるが、quotaや実行時間制限には注意。
・ファイル削除系APIは使わず、既存データは直接変更しない設計で安全。
・入力検証やbatch writeで誤操作防止と効率化を両立。
・バックアップは新規フォルダに日時付きで保存し、復元も手動または別スクリプトで対応可能。
・コスト削減は仮定計算だが、地道な工数削減に役立つ。
GASの力でGoogleドライブのファイル管理をもっとラクにして、無駄なコストを減らしていこうぜ。

■ GASの相談や導入サポートを見たい方へ

この記事と近い作業をGoogleシートやGASで整えたい方は、Gasおじのココナラ出品一覧もご覧ください。

■ 関連サービス

GASおじのココナラ出品一覧
日々の記録、確認、通知、投稿準備などを、GoogleスプレッドシートとGASで無理なく自動化する相談ができます。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す