GASでスプレッドシートの管理者を確認・取得するには「getActiveUser()
」を利用する。
getActiveUser()
現在のユーザーに関する情報を取得します。セキュリティ ポリシーでユーザー ID へのアクセスを許可していない場合、User.getEmail() は空の文字列を返します。メールアドレスを使用できる状況はさまざまです。たとえば、ユーザーのメールアドレスは、単純な onOpen(e) または onEdit(e) トリガー、Google スプレッドシートのカスタム関数、自分ではなくデベロッパーによってデプロイされたウェブアプリなど、そのユーザーの承認なしでスクリプトを実行できるコンテキストでは使用できません。 ただし、デベロッパーが自身でスクリプトを実行する場合、またはユーザーと同じ Google Workspace ドメインに属している場合は、通常これらの制限は適用されません。
getActivehttps://developers.google.com/apps-script/reference/base/session#getactiveuserUser()
スプレッドシートの管理者を確認・取得するGAS実行の様子
getActiveUser()を実行することで、
- スプレッドシートの管理者メールアドレスを確認する
といった操作が可能です。
スプレッドシートに入力ボックスを表示する場合は、以下記事を御覧ください。
参照記事:【GAS】スプレッドシートに入力ボックスを表示する
スプレッドシートの管理者を確認・取得するGAS
//--アクティブシートの管理者を取得する
function getuser(){
//yesnoで管理者権限を取得するか確認
let yesno = Browser.msgBox("このシートの管理者を確認しますか?",Browser.Buttons.YES_NO);
//yesnoがyesなら
if(yesno == "yes"){
//変数kanriにアクティブシートの管理者メアドを格納
let kanri = Session.getActiveUser().getEmail();
//変数kenngenにアクティブシートの編集権限メアドを格納
let kengen = Session.getEffectiveUser().getEmail();
//管理者・実行権限者の情報を掲載
Browser.msgBox("シート管理者:"+kanri+"\\n 実行権限者:"+kengen);
}else{
//noなら権限情報を取得しない旨を掲載
Browser.msgBox("ユーザ権限を取得しませんでした");
}
}
getActiveUser()の戻り値
User - 現在のユーザー
スプレッドシートの管理者を確認・取得するまとめ
GAS×スプレッドシートの管理者を確認・取得するならgetActiveUser()
メソッドを利用しましょう。
関連記事:【GAS】スプレッドシートの文字の折返しを配列で設定する