コンテンツにスキップ

所有者情報の取得

特定のスプレッドシートから、その所有者を取得したい場合に使用する関数について解説します。

Spreadsheet.getOwner();

Spreadsheet クラスに用意されている、getOwner() を使用します。

実行にあたってスプレッドシートにアクセスすることになるため、初回実行時に認証が必要になる場合があります。

/**
* 対象スプレッドシートのID
* https://docs.google.com/spreadsheets/d/〇〇〇/edit の〇〇〇の部分
*/
const SPREAD_SHEET_ID = '_______________';
/**
* スプレッドシートの所有者情報を返却します
*/
const getSpreadSheetOwner = () => {
/** 対象スプレッドシート */
const ss = SpreadsheetApp.openById(SPREAD_SHEET_ID);
/** スプレッドシートの所有者 */
const owner = ss.getOwner();
// 共有ドライブ上のファイルには所有者が存在しないため、null が返されます
if (!owner) {
console.log('所有者が存在しません(共有ドライブ上のファイルです)');
return null;
}
console.log(owner.getEmail());
return owner;
};

実行すると、ログに対象スプレッドシートの所有者のメールアドレスが表示されます。

所有者情報は User クラスとして返却されます。

ただし、共有ドライブに保存されているスプレッドシートには所有者が存在しないため、null が返されます。

User クラスから取得できる値は、現在メールアドレス(getEmail())のみです。

セキュリティポリシーでメールアドレスへのアクセスが許可されていない場合は、空の文字列が返されます。