top of page

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

2025年9月21日
読了時間: 3分

更新日:2025年9月27日

チームのスプレッドシート運用で必須となる「誰が編集したか」の把握。 Session.getActiveUser()だけでは取れないケースも多く、Workspaceドメイン外や匿名編集では空になることがあります。 本稿では、編集者情報を取得する主な手法3つを比較し、Drive APIでファイル自体の更新者名を取得する代表パターンを初心者向けに解説します。



■ 動作環境

OS:Windows 10 Home(64ビット)

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



■ 編集者情報取得の3つのアプローチ比較

手法

メリット

デメリット

Session.getActiveUser()

コードがシンプル セル編集トリガー内で即時取得可能

Workspaceドメイン限定 匿名編集や共有範囲外で空になる

Session.getEffectiveUser()

アドオン実行環境での取得に強み

onEditでは動作せず 特別なアドオン設定が必要

Drive API でファイル情報取得

ファイルのlastModifyingUserを確実に取得 匿名編集も反映

Advanced Drive サービス有効化が必要 APIの呼び出し回数制限

今回は、匿名利用者が編集した時でも名前情報の取得精度があがる「Drive APIでのファイル情報取得」にフォーカスし、 スプレッドシートそのもののメタデータから最新更新者名を取得する手順を詳しく見ていきます。



■ 更新者名を取得する手順

1. Advanced Drive サービスの有効化


  1. スクリプトエディタで「サービス」の「+」マークをクリック

  2. 「サービスを追加」ダイアログボックスにて、「Drive API」を選択し、「追加」ボタンを押下

サービスの追加イメージ

2. コード例

主なクラス・メソッド仕様


  • Drive.Files.get(fileId, params):Advanced Drive API で指定ファイルのメタデータを取得。fieldsで取得項目を絞り込むことが可能。

  • File.lastModifyingUser.displayName:最終更新を行ったユーザーの表示名。

  • File.lastModifyingUser.emailAddress:最終更新ユーザーのメールアドレス。Workspace環境以外でも反映されやすい。

  • SpreadsheetApp.getActiveSpreadsheet().getId():現在のスプレッドシートのファイル ID を取得。

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

  • Sheet.setFrozenRows(count):ヘッダー行を固定表示に設定。



■ さいごに

今回は、編集者情報を取得する3つのアプローチを比較し、 代表的な「Drive APIでファイルメタデータから更新者名を取得する手法」の実装手順を解説しました。


次回は「値の変化を正確にキャプチャ」のテーマで、より高度なログ設計をお届けします。お楽しみに!



コメント


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

bottom of page