私はApps Scriptを初めて使用しています。私はStack Over Flowを検索して同様の質問を見つけ、見つかった情報を使って問題を解決しようとしましたが、これまで成功していませんでした。うまくいけば、ここの誰かが初心者にいくつかの指導を与えることができます。Googleスプレッドシート - ユーザーが保護された範囲でスクリプトを実行できるようにする
私は他のユーザーと共有しているスプレッドシートを持っています。私が保護しようとしている数式の範囲がいくつかあります。私は保護された範囲内でforumlasを変更できるスクリプトを書いています。私のアカウントでは完全に動作しますが、共有ユーザーは「権限を持っていない」ためスクリプトを実行できません。
保護された範囲を編集するための一時的なアクセスを許可しようとするコードを少し書こうとしました。私の考えは3つの異なる機能を持つことでした。最初の関数は保護を削除します。 2番目の機能は、保護されていない範囲の変更を実行します。 3番目の機能は、範囲を再度保護します。以下のコードは私のアカウントの下で完全に動作します。しかし、共有ユーザーとしてログインすると「実行する権限がありません」という警告が表示されます。
誰かが間違っていると私に正しい方向を教えてください。
function myFunction() {
//add protections back
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('Spray Template');
var range = sheet.getRange('B15:E15');
var range2 = sheet.getRange('G15:H15');
var range3 = sheet.getRange('D16:E16');
var ranges = [range,range2,range3];
for (var j = 0; j<3; j++){
ranges[j].protect().removeEditor('[email protected]');
}
}
function myFunction2(){
//remove protections
var ss = SpreadsheetApp.getActive();
var ss2= ss.getSheetByName('Spray Template');
var protections = ss2.getProtections(SpreadsheetApp.ProtectionType.RANGE);
f
or (var i = 0; i < protections.length; i++) {
var protection = protections[i];
protection.addEditor('[email protected]');
SpreadsheetApp.flush();
protection.remove();
}
}
function test() {
myFunction2();
functionThatChangesRange();
myFunction();
}