100ページほどある、シートすべてに制限をかけて、1枚のシート内の1か所だけ(全シート共通)は自由に誰でも編集できるようにしたいと考えています。
そのため、シートすべてに保護をかけて、部分だけ保護解除になるコードを作成しようと、考えました。
しかし、頑張っているのですが、上手くいきません。
お知恵を借りれるでしょうか。
解除したい箇所は「F1Iから33」にかけてです。
そして、すべての保護をかけたところは、「オーナーのみの編集可能」ともしたいと考えています。
今作成していますコードを参考までに添付いたします。
コード function protectSheets() { //スクリプトに紐付いたアクティブなシートを読み込む let mySheet = SpreadsheetApp.getActiveSheet(); //読み込んだシートに保護を設定し、Protectionオブジェクトを変数に格納 let protections = mySheet.protect(); //保護したシートで編集可能なユーザーを取得 let userList = protections.getEditors(); //オーナーのみ編集可能にするため、編集ユーザーをすべて削除 //オーナーの編集権限は削除できないため、オーナーのみ編集可能に protections.removeEditors(userList); // シートを保護 const targetSheet = spreadsheet.getSheetByName(sheetName); const protection = targetSheet.protect(); protection.addEditors(editors); // 特定の範囲を保護しない protection.setUnprotectedRanges([ targetSheet.getRange("F1:I33"), ]); }
回答1件
あなたの回答
tips
プレビュー