top of page

Googleスプレッドシート:編集履歴を自動記録 1

  • 執筆者の写真: egachira0250
    egachira0250
  • 12 時間前
  • 読了時間: 3分

チームや業務で使うGoogleスプレッドシートほど、「誰がいつどこを編集したか」が曖昧になりやすいものです。標準機能のバージョン履歴では後から探す手間がかかり、監査やトラブル対応には不十分。


そこでGoogle Apps Script(GAS)を活用し、編集イベントをトリガーにセル単位で変更履歴を自動記録する仕組みを設計します。



■ 動作環境

OS:Windows 10 Home(64ビット)

Chrome:140.0.7339.128(Official Build) (64 ビット)



編集履歴自動記録のアプローチ比較

手法

メリット

デメリット

標準機能 (バージョン履歴)

導入コスト不要 履歴の復元機能あり

セル単位一覧不可 リアルタイム通知不可

GASによるログ記録

セル単位で即時記録 通知や集計が自在

初期設定が必要 一部操作を検知できない

サードパーティ製アドオン

高機能なダッシュボード 権限管理と監査機能充実

コスト発生 導入・学習コスト

本シリーズでは、導入の手軽さとカスタマイズ性を両立できる「GASによるログ記録」を代表手法として解説していきます。



GASでの編集ログ自動記録の基本設計

4-1. 全体フロー


  1. ユーザーがセルを編集

  2. onEdit(e) トリガーが発火

  3. 編集情報を取得

  4. 「ログ用シート」に1行ずつ追記


4-2. ログ用シートのカラム設計

カラム名

説明

タイムスタンプ

変更発生日時(Date型)

編集者

Session.getActiveUser() の結果

シート名

編集が起きたシート名

範囲

A1 記法で編集箇所(例:B3)

旧値

変更前の値(取得できる場合のみ)

新値

変更後の値

4-3. 最小コード例


解説:使用する主なクラス・メソッド


  • onEdit(e):ユーザー操作によるセル編集時に自動実行されるトリガー関数。

  • e.range:編集されたセルの Range オブジェクト。getA1Notation() で位置を文字列取得。

  • e.value / e.oldValue:編集後/編集前のセル値。複数セル編集時は oldValue 未定義となる場合がある。

  • Session.getActiveUser().getEmail():編集者のメールアドレスを取得(Workspace 環境前提)。取得不可時は 'UNKNOWN' を補填。

  • Sheet.appendRow():指定シートに配列を1行として追記。



■ さいごに

今回は「GASによる変更履歴自動記録」の全体像と基本システム設計を解説しました。次回は、標準機能のバージョン履歴とGASログ記録を比較し、使い分けポイントを詳しく見ていきます。


「どこまでGASでカバーすべき?」を明確にする第2回をお楽しみに!



コメント


©2020 by Excelノウハウの備忘録♪。Wix.com で作成されました。

bottom of page