Googleスプレッドシート:編集履歴を自動記録 6
- egachira0250
- 18 時間前
- 読了時間: 4分
Googleスプレッドシートの編集ログを記録しただけでは、問題発生時に気づくまでにタイムラグが生じます。 そこで最終回では、GASを使ったリアルタイム通知とダッシュボード化の手法を紹介。業務フローにアラートと可視化を組み込むことで、チームのコラボレーションをさらに強化します。
■ 動作環境
OS:Windows 10 Home(64ビット)
Chrome:140.0.7339.208(Official Build) (64 ビット)
■ 通知チャネルとダッシュボード化の選択肢比較
変更ログをリアルタイムに知らせたり、可視化したりするには主に以下のアプローチがあります。
手法 | メリット | デメリット |
Gmail通知 | セットアップが簡単 会社メールに directly 通知 | メールボックスが埋まりやすい 即時性・絞り込みに限界 |
Slack Incoming Webhook | チャンネル単位で通知 通知フォーマットを柔軟にカスタマイズ | Webhook URL の管理 無料プランのメッセージ容量制限 |
Chatwork API | 国内企業で馴染み深い タスク化しやすい | APIトークン管理 メッセージ整形に工数 |
LINE Notify | スマホにプッシュ通知 導入コストゼロ | 1:1通知が基本 グループ対応には工夫が必要 |
スプレッドシート内ダッシュボード | ログをリアルタイム集計・可視化 追加外部ツール不要 | シートが重くなる 即時アラートには別途通知手段が必要 |
Gmail は、ほとんどのユーザーが既に使い慣れており、フィルタやラベルで通知管理が簡単な点が魅力です。本稿では、Gmail 通知を代表例として、実装手順を詳しく解説します。
後半で、スプレッドシート内に単純な編集ログダッシュボードを作るヒントも紹介します。
■ Gmail通知の実装フローと設計ポイント
GASからGmailを使って編集ログを送信するには、次のフローを踏みます。
編集トリガー発火:onEditやonChangeでセル編集を検知
編集情報取得:タイムスタンプ/編集者/シート名/セル範囲/旧値/新値
メール本文作成:件名・本文に取得情報を埋め込み
Gmail送信:GmailApp.sendEmail()で通知
設計ポイント
件名にシート名とセル位置を含め、メール検索を容易にする
本文にHTMLを利用して可読性を上げる
複数編集イベントが短時間に発生する場合は、バッチ化や抑制ロジックを検討
■ Gmail通知の実装例
コード例:onEditでメール通知+ログ記録
主なクラス・メソッド仕様
onEdit(e) / EditEvent:セル編集時に自動発火。e.range, e.value, e.oldValue を利用。
GmailApp.sendEmail(recipient, subject, body, options):Gmailからメールを送信。htmlBodyオプションでリッチテキスト可。
Session.getActiveUser().getEmail():編集者のメール取得。取得不可時は'UNKNOWN'を補完。
Sheet.appendRow(rowData) / Range.setValues(values):ログシートへの書き込み。リアルタイムに記録可能。
Date.toLocaleString():日本時間での可読性高い日時文字列を生成。
■ スプレッドシート内ダッシュボード化のヒント
ピボットテーブルでシート別・ユーザー別の編集回数を可視化
QUERY 関数で特定期間・特定ユーザーの変更履歴絞り込み
スパークラインを使った時系列グラフで編集頻度を表示
これらを組み合わせることで、外部ツールなしにリアルタイムの編集状況が把握できます。
■ さいごに
シリーズ最終回では、GAS×Gmailによる編集ログのリアルタイムメール通知と、基本的なログ記録を解説しました。メールフィルタやラベルで通知整理を進めつつ、ダッシュボード化(ピボットテーブルやQUERY関数)を組み合わせれば、 編集状況の把握とアラート管理が一気に楽になります。シリーズを通して学んだノウハウを活用し、 スプレッドシート運用の品質と信頼性をさらに向上させてください。
ご活用ありがとうございました!
コメント