Google SpreadsheetのGASでaddEditor関数を使ってみよう

Google Spreadsheetは、オンラインで簡単にスプレッドシートを作成・編集・共有できる便利なツールです。しかし、スプレッドシートを共有するときには、誰にどのような権限を与えるかを考える必要があります。権限とは、スプレッドシートに対してできる操作の範囲のことです。権限には、以下の3つの種類があります。

  • 閲覧者: スプレッドシートを見ることだけできます。編集やコメントはできません。
  • コメント投稿者: スプレッドシートを見ることとコメントを付けることができます。編集はできません。
  • 編集者: スプレッドシートを見ることと編集することができます。コメントも付けることができます。

では、スプレッドシートの権限をどうやって設定するのでしょうか?そのときに使うのが、Google Apps Script(以下、GAS)のaddEditor関数です。この関数は、スプレッドシートに編集者を追加するための関数です。この記事では、この関数の使い方を解説します。

💡この記事でわかること
  • addEditor関数の概要と引数の説明
  • addEditor関数のプログラムサンプルと実行結果
  • addEditor関数の戻り値とその活用方法

addEditor関数とは

addEditor関数は、スプレッドシートに編集者を追加するための関数です。この関数は、以下のように書きます。

Spreadsheet.addEditor(emailAddress)

この関数には、以下の1つの引数があります。

  • emailAddress: 編集者として追加するユーザーのメールアドレスを指定する文字列です。

この関数を使うときは、emailAddressは必ず指定する必要があります。

addEditor関数のプログラムサンプルと実行結果

では、実際にaddEditor関数を使ってみましょう。以下のプログラムは、スプレッドシートに「bob@example.com」というメールアドレスのユーザーを編集者として追加するものです。

function addEditorExample() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  spreadsheet.addEditor('bob@example.com');
}

このプログラムを実行すると、スプレッドシートに編集者が追加されます。スプレッドシートの右上にある「共有」ボタンをクリックして、共有設定を確認すると、以下のような画面が表示されます。

これは、スプレッドシートに「bob@example.com」というメールアドレスのユーザーが編集者として追加されたことを示しています。また、このユーザーには、スプレッドシートへのアクセス権限が付与された旨のメールが送られます。

addEditor関数の戻り値とその活用方法

addEditor関数は、スプレッドシートに編集者を追加するだけでなく、追加した編集者の情報を表すUser型のオブジェクトを戻り値として返します。このオブジェクトを使うと、編集者のメールアドレスやドメインなどの情報を取得することができます。

例えば、以下のプログラムは、addEditor関数の戻り値を変数に代入して、その情報をコンソールに出力するものです。

function addEditorExample() {
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var user = spreadsheet.addEditor('bob@example.com');
  console.log('Email: ' + user.getEmail());
  console.log('Domain: ' + user.getDomain());
}

このプログラムを実行すると、コンソールには以下のようなメッセージが表示されます。

[20-01-24 10:38:42:042 JST] User added to Spreadsheet with ID 1a2b3c4d5e6f7g8h9i0j: bob@example.com
[20-01-24 10:38:42:043 JST] Email: bob@example.com
[20-01-24 10:38:42:044 JST] Domain: example.com

これは、編集者のメールアドレスとドメインの情報を示しています。

Userオブジェクトには、他にも以下のようなメソッドがあります。

  • getPhotoUrl(): ユーザーの写真のURLを返すメソッドです。
  • getName(): ユーザーの名前を返すメソッドです。

これらのメソッドを使うと、編集者の詳細な情報を取得することができます。

まとめ

この記事では、GASのaddEditor関数について解説しました。この関数は、スプレッドシートに編集者を追加するための関数です。編集者とは、スプレッドシートを見ることと編集することができるユーザーのことです。addEditor関数は、編集者を追加するだけでなく、追加した編集者の情報を表すオブジェクトを戻り値として返します。このオブジェクトを使うと、編集者のメールアドレスやドメインなどの情報を取得することができます。

スプレッドシートの権限は、スプレッドシートのデータを安全に管理するための重要な機能です。

たけだ

ぜひ、addEditor関数を使って、スプレッドシートの共有設定をより便利に扱ってみてください。

参考文献

GASをイチから学びたい方へ

このブログでは断片的な説明になってしまっていますが、本書は幅広いGASの内容が網羅的に学べる本です。イチから学びたい方は是非読んでみてください。

すでにGASをある程度マスターした方にも辞書的に手元に置いておくと便利です。