3

スクリプトを使用して特定のGoogleAppsワークシートをロックする方法はありますか?

現在のスプレッドシートの名前を入力ボックスに入力したものに変更するこのコードがあります。

// The code below will rename the active sheet to what you enter in the input box
var myValue = Browser.inputBox("Enter: LastMonth - Year");
SpreadsheetApp.getActiveSpreadsheet().renameActiveSheet(myValue);
SpreadsheetApp.getActiveSpreadsheet().getRange("A1").setValue(myValue);

上記のコードに何を追加すれば、同じワークシートをロックし、名前を変更しただけで、そのワークシートを編集できるようになります。それは可能ですか?

4

3 に答える 3

8
// Enables sheet protection for  this sheet
var sheet = SpreadsheetApp.getActiveSheet();
var permissions = sheet.getSheetProtection();
permissions.setProtected(true);
sheet.setSheetProtection(permissions);

スプレッドシートサービス-クラスPageProtectionを参照してください

于 2012-05-16T17:02:41.703 に答える
2

@ScampMichaelが言ったように、以下のコードはSpreadsheet Servicesにあります。

シートが保護されている場合、シートを編集できるユーザーのリストにユーザーを追加します。

// Add the "user@example.com" user to the list of users who can edit this sheet
 var sheet = SpreadsheetApp.getActiveSheet();
 var permissions = sheet.getSheetProtection();
 permissions.addUser('user@example.com');
 permissions.setProtected(true);
 sheet.setSheetProtection(permissions);
于 2013-10-28T22:11:00.883 に答える
1

Class PageProtectionは現在廃止されているため、Class Protection を使用して同じことを実現できます。

var sheet = SpreadsheetApp.getActiveSheet();
sheet.protect();

必要に応じて保護を解除するには、次のコード スニペットを使用できます。

var protection = sheet.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0];
 if (protection && protection.canEdit()) {
   protection.remove();
 }
于 2017-04-13T14:15:35.267 に答える