2

初めての Google Sheets Apps Script を試しています。セルが保護されているかどうかを確認するカスタム関数を (バインドされたスクリプトを介して) 作成しようとしています。保護されている場合は、セルの値を (少なくとも現時点では) 保護タイプに変更する必要があります。

ドキュメントで簡単なデモ スクリプトを正常に実行できます。

function DOUBLE(input) {
  return input * 2;
}

しかし、Range::protect を呼び出すと、エラーが発生する可能性があります

"You do not have permission to call protect"

ここに関数があります

function isProtected() {
 var range = SpreadsheetApp.getActiveRange();
 var protection = range.protect();
 return protection.getProtectionType();
}

他のいくつかの機能でも同じ権限エラーが発生しますSession.getEffectiveUser()。これはバインドされたカスタム関数であり、私が (唯一の) シート所有者であるため、これらのメソッドを呼び出すことができると考えました。私は何が欠けていますか?ありがとう。

スクリプトをコピーして新しいシートのスクリプト エディターに貼り付けようとしましたが、運が良かった投稿もありますが、うまくいきませんでした。

4

1 に答える 1

7

カスタム関数は匿名で実行されるため、暗黙的な結果として、承認が必要なことは何も実行できません

を変更するrange protectionには承認が必要です。そのため、それを使用してメッセージを取得することはできません...

の場合も同じ状況でgetEffectiveUser()、承認も必要です。

ドキュメントの参照:

他のほとんどの種類の Apps Script とは異なり、カスタム関数はユーザーに個人データへのアクセスを承認するよう求めることはありません。したがって、個人データにアクセスできないサービスのみを呼び出すことができます

于 2016-04-01T22:04:10.950 に答える