Google Apps Script(GAS)でスプレッドシートに編集権限・共有設定を付与する方法
Googleの表計算サービス「SpreadSheet(スプレッドシート)」の編集権限(共有)を、Google Apps Script(GAS)を使って設定する方法を解説したいと思います。
スプレッドシートの編集権限は、GUI上で他のユーザーに簡単に付与できますが、実はスプレッドシートの共有設定は、GASのスクリプトでも設定することが可能です。
スプレッドシートに権限付与するGASのコマンド
スプレッドシートに他のユーザーの権限を付与するコマンドは「addEditor」です。SpreadSheetクラスのオブジェクトで実行可能なコマンドです。
アクティブなスプレッドシートに対し、「aaaaaaa@gmail.com」ユーザーに編集権限を付与するコードは以下になります。
var mySheet = SpreadsheetApp.getActiveSpreadsheet;
mySheet.addEditor("aaaaaaa@gmail.com")
※スプレッドシートに紐づいたビルドイン型のGoogle Apps Scriptの場合
もし、スプレッドシートに紐付かないスタンドアロン型のGASで行う場合は、以下のように行います。
SpreadsheetApp.openById("スプレッドシートのID")
mySheet.addEditor("aaaaaaa@gmail.com")
addEditorにはGmailアドレス以外にも、ユーザーオブジェクトも引数に指定できます。
しかし、G Suiteなどの有料版を使わない限り、メールアドレスを指定して編集権限を付与します。
GASで編集権限を付与するメリット
Google Apps Scirptでスプレッドシートの編集権限を付与するのに、どういったメリット・利便性があるかと思う方もいらっしゃると思います。
通常のスプレッドシート利用の場合は、Webブラウザ上で指定するユーザーの権限を付与すればよいため、それほど利便性はありません。
しかし、GASで自動的にレポートを作成しているケースでは、編集権限を付与できるのは大きなメリットです。
スプレッドシート上でレポートの共有ユーザーを管理しておけば、GASで作ったスプレッドシートの表がそのまま共有可能です。
さらに管理簿を修正すれば、担当者の追加・削除も容易になります。
スプレッドシート共有設定のGASサンプルコード
指定したスプレッドシートに対し、共有設定を行うための、Google Apps Scirptのサンプルコードを紹介します。
- 新しいスプレッドシートを作成
- スプレッドシート上にデータを入力
- test@gmail.comユーザーに編集権限付与
というコードを紹介します。
function createDocument(){
//新しいスプレッドシートを作成する
var newSheet = SpreadsheetApp.create("テストシート);
/*
作成したスプレッドシート上にデータを出力する
*/
//スプレッドシートにtest@gmai.comユーザーに編集権限を付与する
newSheet.addEditor("test@gmail.com");
}
Googleドキュメントでも設定可能
ここまでGoogleスプレッドシートで編集権限を付与するコードを紹介しましたが、Googleドキュメントでも設定することができます。
コマンドはスプレッドシートと同じ「addEditor」です。
DriveAppクラスでaddEditorコマンドの注意点
もう1つの権限付与の方法として、DriveAppクラスで権限付与したいスプレッドシートを読み込むことでも同様に設定できます。
しかし、DriveAppクラスでスプレッドシートに権限を付与場合、権限を付与したユーザーにメール通知が飛ぶようになります。
通常のスプレッドシートの共有であれば、リンク先を伝えるために通知があったほうがよいですが、GASで自動生成するコンテンツの場合、通知が邪魔になります。
そうした点でスプレッドシートを定義するspreadSheetクラス利用する方が、たくさんのユーザーに権限付与する場合など、不要な通知が飛ばないので便利です。
まとめ・終わりに
今回、Googleスプレッドシートの編集権限や共有設定をGoogle Apps Scirpt(GAS)で設定するコードを紹介しました。
「addEditor」を使用することで指定するユーザーに編集権限を付与することができます。
GASで自動生成したレポートや報告書に権限付与ができるので、さらなる自動化に利用することができます。
ディスカッション
コメント一覧
まだ、コメントがありません