Class Protection

保護

保護されている範囲とシートにアクセスして変更する。保護されている範囲は、 名前付き範囲を指定できます保護されているシートには、保護されていない領域が含まれている場合があります。対象 旧バージョンの Google スプレッドシートで作成されたスプレッドシートでは、PageProtection を使用してください クラスを使用します。

// Protect range A1:B10, then remove all other users from the list of editors.
var ss = SpreadsheetApp.getActive();
var range = ss.getRange('A1:B10');
var protection = range.protect().setDescription('Sample protected range');

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}
// Remove all range protections in the spreadsheet that the user has permission to edit.
var ss = SpreadsheetApp.getActive();
var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protections.length; i++) {
  var protection = protections[i];
  if (protection.canEdit()) {
    protection.remove();
  }
}
// Protect the active sheet, then remove all other users from the list of editors.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect().setDescription('Sample protected sheet');

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}

メソッド

メソッド戻り値の型概要
addEditor(emailAddress)Protection保護されているシートまたは範囲の編集者のリストに指定したユーザーを追加します。
addEditor(user)Protection保護されているシートまたは範囲の編集者のリストに指定したユーザーを追加します。
addEditors(emailAddresses)Protection指定したユーザーの配列を、保護されているシートまたは範囲の編集者のリストに追加します。
addTargetAudience(audienceId)Protection指定した対象グループを保護範囲の編集者として追加します。
canDomainEdit()Booleanスプレッドシートを所有するドメイン内のすべてのユーザーに編集権限があるかどうかを指定する 選択することもできます。
canEdit()Boolean保護されている範囲やシートを編集する権限をユーザーに付与するかどうかを指定します。
getDescription()String保護されている範囲またはシートの説明を取得します。
getEditors()User[]保護されている範囲またはシートの編集者のリストを取得します。
getProtectionType()ProtectionType保護エリアのタイプ(RANGE または SHEET)を取得します。
getRange()Range保護されている範囲を取得します。
getRangeName()String名前付き範囲に関連付けられている場合、保護されている範囲の名前を取得します。
getTargetAudiences()TargetAudience[]保護されている範囲を編集できる対象グループの ID を返します。
getUnprotectedRanges()Range[]保護されているシート内の保護されていない範囲の配列を取得します。
isWarningOnly()Boolean保護地域が「警告ベース」を使用しているかどうかを判断します保護を強化します。
remove()void範囲またはシートの保護を解除します。
removeEditor(emailAddress)Protection保護されているシートまたは範囲の編集者のリストから、指定したユーザーを削除します。
removeEditor(user)Protection保護されているシートまたは範囲の編集者のリストから、指定したユーザーを削除します。
removeEditors(emailAddresses)Protection保護されているシートまたは範囲の編集者のリストから、指定したユーザーの配列を削除します。
removeTargetAudience(audienceId)Protection保護されている範囲の編集者として指定した対象グループを削除します。
setDescription(description)Protection保護されている範囲またはシートの説明を設定します。
setDomainEdit(editable)Protectionスプレッドシートを所有するドメイン内のすべてのユーザーに、スプレッドシートの編集権限があるかどうかを設定します。 保護されている範囲やシートです。
setNamedRange(namedRange)Protection保護されている範囲を既存の名前付き範囲に関連付けます。
setRange(range)Protection保護する範囲を調整します。
setRangeName(rangeName)Protection保護されている範囲を既存の名前付き範囲に関連付けます。
setUnprotectedRanges(ranges)Protection保護されているシート内の指定された範囲配列の保護を解除します。
setWarningOnly(warningOnly)Protectionこの保護されている範囲で「警告ベース」を使用するかどうかを設定します保護を強化します。

詳細なドキュメント

addEditor(emailAddress)

保護されているシートまたは範囲の編集者のリストに指定したユーザーを追加します。この方法では、 スプレッドシート自体の編集権限をユーザーに自動的に付与しない。これを さらに、Spreadsheet.addEditor(emailAddress) を呼び出します。

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Adds an editor to the spreadsheet using an email address.
// TODO(developer): Replace the email address with a valid email.
ss.addEditor('cloudysanfrancisco@gmail.com');

// Gets a sheet by its name and protects it.
const sheet = ss.getSheetByName('Sheet1');
const sampleProtectedSheet = sheet.protect();

// Adds an editor of the protected sheet using an email address.
// TODO(developer): Replace the email address with a valid email.
sampleProtectedSheet.addEditor('cloudysanfrancisco@gmail.com');

// Gets the editors of the protected sheet.
const editors = sampleProtectedSheet.getEditors();

// Logs the editors' email addresses to the console.
for (const editor of editors) {
  console.log(editor.getEmail());
}

パラメータ

名前説明
emailAddressString追加するユーザーのメールアドレス。

戻る

Protection - チェーン用の保護設定を表すオブジェクト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

addEditor(user)

保護されているシートまたは範囲の編集者のリストに指定したユーザーを追加します。この方法では、 スプレッドシート自体の編集権限をユーザーに自動的に付与しない。これを さらに、Spreadsheet.addEditor(user) を呼び出します。

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Adds the active user as an editor of the protected sheet.
sampleProtectedSheet.addEditor(Session.getActiveUser());

// Gets the editors of the protected sheet.
const editors = sampleProtectedSheet.getEditors();

// Logs the editors' email addresses to the console.
for (const editor of editors) {
  console.log(editor.getEmail());
}

パラメータ

名前説明
userUser追加するユーザーの表現。

戻る

Protection - チェーン用の保護設定を表すオブジェクト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

addEditors(emailAddresses)

指定したユーザーの配列を、保護されているシートまたは範囲の編集者のリストに追加します。この メソッドでは、スプレッドシート自体の編集権限がユーザーに自動的に付与されることはありません。タスク さらに、Spreadsheet.addEditors(emailAddresses) を呼び出します。

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Creates variables for the email addresses to add as editors.
// TODO(developer): Replace the email addresses with valid ones.
const TEST_EMAIL_1 = 'cloudysanfrancisco@gmail.com';
const TEST_EMAIL_2 = 'baklavainthebalkans@gmail.com';

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Adds editors to the protected sheet using the email address variables.
sampleProtectedSheet.addEditors([TEST_EMAIL_1, TEST_EMAIL_2]);

// Gets the editors of the protected sheet.
const editors = sampleProtectedSheet.getEditors();

// Logs the editors' email addresses to the console.
for (const editor of editors) {
  console.log(editor.getEmail());
}

パラメータ

名前説明
emailAddressesString[]追加するユーザーのメールアドレスの配列。

戻る

Protection - チェーン用の保護設定を表すオブジェクト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

addTargetAudience(audienceId)

指定した対象グループを保護範囲の編集者として追加します。

パラメータ

名前説明
audienceIdString追加する対象グループの ID。

戻る

Protection - チェーン用の保護設定を表すオブジェクト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

canDomainEdit()

スプレッドシートを所有するドメイン内のすべてのユーザーに編集権限があるかどうかを指定する クリックします。ユーザーに編集権限がない場合、例外をスローします。 クリックします。

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Logs whether domain users have permission to edit the protected sheet to the console.
console.log(sampleProtectedSheet.canDomainEdit());

戻る

Boolean - スプレッドシートを所有するドメイン内のすべてのユーザーに権限がある場合は true 保護されている範囲やシートを編集するそうでない場合は false

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

canEdit()

保護されている範囲やシートを編集する権限をユーザーに付与するかどうかを指定します。「 スプレッドシートのオーナーは、保護されている範囲とシートをいつでも編集できます。

// Remove all range protections in the spreadsheet that the user has permission to edit.
var ss = SpreadsheetApp.getActive();
var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protections.length; i++) {
  var protection = protections[i];
  if (protection.canEdit()) {
    protection.remove();
  }
}

戻る

Boolean - 保護されている範囲またはシートを編集する権限がユーザーに付与されている場合は true。含まれていない場合は false

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getDescription()

保護されている範囲またはシートの説明を取得します。説明が設定されていない場合、このメソッドは 空の文字列を返します。

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet and sets the description.
const sampleProtectedSheet = sheet.protect().setDescription('Sample sheet is protected');

// Gets the description of the protected sheet and logs it to the console.
const sampleProtectedSheetDescription = sampleProtectedSheet.getDescription();
console.log(sampleProtectedSheetDescription);

戻る

String - 保護されている範囲またはシートの説明。説明がない場合は空の文字列 設定されます。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getEditors()

保護されている範囲またはシートの編集者のリストを取得します。ユーザーが実行すると例外をスローします。 保護されている範囲またはシートを編集する権限がありません。

// Protect the active sheet, then remove all other users from the list of editors.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect().setDescription('Sample protected sheet');

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}

戻る

User[] - 保護されている範囲またはシートを編集する権限を持つユーザーの配列

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getProtectionType()

保護エリアのタイプ(RANGE または SHEET)を取得します。

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Gets the type of the protected area.
const protectionType = sampleProtectedSheet.getProtectionType();

// Logs 'SHEET'to the console since the type of the protected area is a sheet.
console.log(protectionType.toString());

戻る

ProtectionType - 保護対象エリアのタイプ(RANGE または SHEET)。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getRange()

保護されている範囲を取得します。スプレッドシート自体ではなく、シートに保護が シート全体にまたがる範囲を返します。

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Gets the range 'A1:B10' of Sheet1.
const range = sheet.getRange('A1:B10');

// Makes cells A1:B10 a protected range.
const sampleProtectedRange = range.protect();

// Gets the protected ranges on the sheet.
const protections = sheet.getProtections(SpreadsheetApp.ProtectionType.RANGE);

// Logs the A1 notation of the first protected range on the sheet.
console.log(protections[0].getRange().getA1Notation());

戻る

Range - 保護される範囲。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getRangeName()

名前付き範囲に関連付けられている場合、保護されている範囲の名前を取得します。保護が名前付き範囲に関連付けられていない場合は、null を返します。なお、スクリプトは明示的に setRangeName(rangeName) を呼び出して、保護されている範囲を名前付き範囲に関連付けます。通話中 Range.protect() を使用して、Range から保護を作成します。 setRangeName(rangeName) を呼び出さない名前付き範囲では、 できます。ただし、Google スプレッドシートの UI で名前付き範囲から保護されている範囲を作成すると、 自動的に作成されます。

// Protect a named range in a spreadsheet and log the name of the protected range.
var ss = SpreadsheetApp.getActive();
var range = ss.getRange('A1:B10');
var protection = range.protect();
ss.setNamedRange('Test', range);       // Create a named range.
protection.setRangeName('Test');       // Associate the protection with the named range.
Logger.log(protection.getRangeName()); // Verify the name of the protected range.

戻る

String - 保護されている名前付き範囲の名前。保護されている範囲がない場合は null 名前付き範囲に関連するタスクを実行できます

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getTargetAudiences()

保護されている範囲を編集できる対象グループの ID を返します。

戻る

TargetAudience[] - 対象グループの ID の配列。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

getUnprotectedRanges()

保護されているシート内の保護されていない範囲の配列を取得します。Protection オブジェクトが が保護されているシートではなく保護されている範囲に対応している場合、このメソッドは空の あります。保護されていない範囲を変更するには、setUnprotectedRanges(ranges) を使用して 範囲の新しい配列シート全体を再度保護するには、空の配列を設定します。

// Unprotect cells E2:F5 in addition to any other unprotected ranges in the protected sheet.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect();
var unprotected = protection.getUnprotectedRanges();
unprotected.push(sheet.getRange('E2:F5'));
protection.setUnprotectedRanges(unprotected);

戻る

Range[] - 保護されているシート内の保護されていない範囲の配列

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

isWarningOnly()

保護地域が「警告ベース」を使用しているかどうかを判断します保護を強化します。警告ベースの保護 すべてのユーザーがその領域のデータを編集できます。ただし、編集では、 ユーザーが編集を確定します。デフォルトでは、保護されている範囲やシートは警告に基づいて設定されません。宛先 警告状態に変更する場合は、setWarningOnly(warningOnly) を使用します。

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit')

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Sets the warning status for the protected sheet as true.
sampleProtectedSheet.setWarningOnly(true);

const protectedSheetWarningStatus = sampleProtectedSheet.isWarningOnly();

// Logs the warning status of the protected sheet to the console.
console.log(protectedSheetWarningStatus);

戻る

Boolean - 保護されている範囲またはシートで警告ベースの保護のみを使用している場合は true

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

remove()

範囲またはシートの保護を解除します。

// Remove all range protections in the spreadsheet that the user has permission to edit.
var ss = SpreadsheetApp.getActive();
var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE);
for (var i = 0; i < protections.length; i++) {
  var protection = protections[i];
  if (protection.canEdit()) {
    protection.remove();
  }
}
// Remove sheet protection from the active sheet, if the user has permission to edit it.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0];
if (protection && protection.canEdit()) {
  protection.remove();
}

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeEditor(emailAddress)

保護されているシートまたは範囲の編集者のリストから、指定したユーザーを削除します。なお、 ユーザーが編集権限を持つ Google グループのメンバーである、またはドメイン内のすべてのユーザーが 編集権限を持っているユーザーであれば、引き続き保護領域を編集できます。所有者は 現在のユーザーを削除することはできません。

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Creates a variable for an email address.
// TODO(developer): Replace the email address with a valid one.
const TEST_EMAIL = 'baklavainthebalkans@gmail.com';

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Adds an editor to the protected sheet using the email address variable.
sampleProtectedSheet.addEditor(TEST_EMAIL);

// Removes the editor from the protected sheet using the email address variable.
sampleProtectedSheet.removeEditor(TEST_EMAIL);

// Gets the editors of the protected sheet.
const editors = sampleProtectedSheet.getEditors();

// Logs the editors' email addresses to the console.
for (const editor of editors) {
  console.log(editor.getEmail());
}

パラメータ

名前説明
emailAddressString削除するユーザーのメールアドレス。

戻る

Protection - チェーン用の保護設定を表すオブジェクト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeEditor(user)

保護されているシートまたは範囲の編集者のリストから、指定したユーザーを削除します。なお、 ユーザーが編集権限を持つ Google グループのメンバーである、またはドメイン内のすべてのユーザーが 編集権限を持っている場合、ユーザーは引き続き保護領域を編集できます。また、 現在のユーザーを削除することはできません。

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets a sheet by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Removes the active user from the editors of the protected sheet.
sampleProtectedSheet.removeEditor(Session.getActiveUser());

// Gets the editors of the protected sheet.
const editors = sampleProtectedSheet.getEditors();

// Logs the editors' email addresses to the console.
for (const editor of editors) {
  console.log(editor.getEmail());
}

パラメータ

名前説明
userUser削除するユーザーの表現。

戻る

Protection - チェーン用の保護設定を表すオブジェクト

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeEditors(emailAddresses)

保護されているシートまたは範囲の編集者のリストから、指定したユーザーの配列を削除します。 ユーザーの中に編集権限を持つ Google グループのメンバーがいる場合や、 ドメイン内のユーザーに編集権限がある場合、それらのユーザーは保護された エリアです。スプレッドシートのオーナーも現在のユーザーも削除できません。

// Protect the active sheet, then remove all other users from the list of editors.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect().setDescription('Sample protected sheet');

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}

パラメータ

名前説明
emailAddressesString[]削除するユーザーのメールアドレスの配列。

戻る

Protection - チェーン用の保護設定を表すオブジェクト

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

removeTargetAudience(audienceId)

保護されている範囲の編集者として指定した対象グループを削除します。

パラメータ

名前説明
audienceIdString削除する対象グループの ID。

戻る

Protection - チェーン用の保護設定を表すオブジェクト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setDescription(description)

保護されている範囲またはシートの説明を設定します。

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets the sheet 'Sheet1' by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet.
const sampleProtectedSheet = sheet.protect();

// Sets the sheet description to 'Sheet1 is protected.'
sampleProtectedSheet.setDescription('Sheet1 is protected');

// Gets the description of the protected sheet.
const sampleProtectedSheetDescription = sampleProtectedSheet.getDescription();

// Logs the description of the protected sheet to the console.
console.log(sampleProtectedSheetDescription);

パラメータ

名前説明
descriptionString保護されている範囲またはシートの説明。

戻る

Protection - チェーン用の保護設定を表すオブジェクト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setDomainEdit(editable)

スプレッドシートを所有するドメイン内のすべてのユーザーに、スプレッドシートの編集権限があるかどうかを設定します。 保護されている範囲やシートです。明示的な編集権限を持つユーザーは、これらの操作を この設定に関係なく、保護対象領域の編集は編集できません。スプレッドシートで例外がスローされる場合、例外がスローされます。 Google Workspace ドメインに属していない(つまり、gmail.com アカウントによって所有されている)

パラメータ

名前説明
editableBooleantrue: スプレッドシートを所有するドメイン内のすべてのユーザーが、 保護されている範囲またはシートの編集権限そうでない場合は false

戻る

Protection - チェーン用の保護設定を表すオブジェクト

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setNamedRange(namedRange)

保護されている範囲を既存の名前付き範囲に関連付けます。名前付き範囲が 現在の保護されている範囲と異なるエリアがある場合、この方法では、 名前付き範囲を使用します名前付き範囲は、現在保護されているシートと同じシート上に存在する必要があります あります。スクリプトでは、このメソッドを明示的に呼び出して、保護されている範囲を 名前付き範囲Range.protect() を呼び出して Range から保護を作成する setRangeName(rangeName) を呼び出さずに名前付き範囲とみなされると、 関連付けるのに十分ですただし、名前付き範囲から保護されている範囲を作成すると、 Google スプレッドシートの UI で自動的に関連付けられます。

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Protects cells A1:D10 on Sheet1.
const sheet = ss.getSheetByName('Sheet1');
const protectedRange = sheet.getRange('A1:D10').protect();

// Logs the current protected range, A1:D10.
console.log(protectedRange.getRange().getA1Notation());

// Creates a named range for cells E1:J10 called 'NewRange.'
const newRange = sheet.getRange('E1:J10');
ss.setNamedRange('NewRange', newRange);
const namedRange = ss.getNamedRanges()[0];

// Updates the protected range to the named range, 'NewRange.'
// This updates the protected range on Sheet1 from A1:D10 to E1:J10.
protectedRange.setNamedRange(namedRange);

// Logs the updated protected range to the console.
console.log(protectedRange.getRange().getA1Notation());

パラメータ

名前説明
namedRangeNamedRange保護されている範囲に関連付ける既存の名前付き範囲。

戻る

Protection - チェーン用の保護設定を表すオブジェクト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setRange(range)

保護する範囲を調整します。指定された範囲が 現在の保護されている範囲がある場合、この方法では、代わりに新しい範囲をカバーするように保護を移動します。

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Protects cells A1:D10 on Sheet1 of the spreadsheet.
const sheet = ss.getSheetByName('Sheet1');
const protectedRange = sheet.getRange('A1:D10').protect();

// Logs the original protected range, A1:D10, to the console.
console.log(protectedRange.getRange().getA1Notation());

// Gets the range E1:J10.
const newRange = sheet.getRange('E1:J10');

// Updates the protected range to E1:J10.
protectedRange.setRange(newRange);

// Logs the updated protected range to the console.
console.log(protectedRange.getRange().getA1Notation());

パラメータ

名前説明
rangeRange編集から保護する新しい範囲。

戻る

Protection - チェーン用の保護設定を表すオブジェクト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setRangeName(rangeName)

保護されている範囲を既存の名前付き範囲に関連付けます。名前付き範囲が 現在の保護されている範囲と異なるエリアがある場合、この方法では、 名前付き範囲を使用します名前付き範囲は、現在保護されているシートと同じシート上に存在する必要があります あります。スクリプトでは、このメソッドを明示的に呼び出して、保護されている範囲を 名前付き範囲Range.protect() を呼び出して Range から保護を作成する setRangeName(rangeName) を呼び出さずに名前付き範囲とみなされると、 関連付けるのに十分ですただし、名前付き範囲から保護されている範囲を作成すると、 Google スプレッドシートの UI で自動的に関連付けられます。

// Protect a named range in a spreadsheet and log the name of the protected range.
var ss = SpreadsheetApp.getActive();
var range = ss.getRange('A1:B10');
var protection = range.protect();
ss.setNamedRange('Test', range);       // Create a named range.
protection.setRangeName('Test');       // Associate the protection with the named range.
Logger.log(protection.getRangeName()); // Verify the name of the protected range.

パラメータ

名前説明
rangeNameString保護する名前付き範囲の名前。

戻る

Protection - チェーン用の保護設定を表すオブジェクト

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setUnprotectedRanges(ranges)

保護されているシート内の指定された範囲配列の保護を解除します。次の場合に例外をスローします。 Protection オブジェクトが、保護されているシートではなく、保護されている範囲に対応している、または 保護されているシートに範囲がない。保護されていない範囲を変更するには、新しい 範囲の配列シート全体を再度保護するには、空の配列を設定します。

// Protect the active sheet except B2:C5, then remove all other users from the list of editors.
var sheet = SpreadsheetApp.getActiveSheet();
var protection = sheet.protect().setDescription('Sample protected sheet');
var unprotected = sheet.getRange('B2:C5');
protection.setUnprotectedRanges([unprotected]);

// Ensure the current user is an editor before removing others. Otherwise, if the user's edit
// permission comes from a group, the script throws an exception upon removing the group.
var me = Session.getEffectiveUser();
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
  protection.setDomainEdit(false);
}

パラメータ

名前説明
rangesRange[]保護されているシート内に保護されていない範囲の配列です。

戻る

Protection - チェーン用の保護設定を表すオブジェクト

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets

setWarningOnly(warningOnly)

この保護されている範囲で「警告ベース」を使用するかどうかを設定します保護を強化します。警告ベース 保護機能により、すべてのユーザーがその領域のデータを編集できます(ただし、編集時に警告が表示される場合を除く) ユーザーに編集の確認を求めるメッセージが表示されます。保護されている範囲やシートは、デフォルトでは アラートに基づいて判断します警告状態を確認するには、isWarningOnly() を使用します。

// Opens the spreadsheet file by its URL. If you created your script from within
// a Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead.
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit');

// Gets the sheet 'Sheet1' by its name.
const sheet = ss.getSheetByName('Sheet1');

// Protects the sheet and sets the protection to warning-based.
const sampleProtectedSheet = sheet.protect().setWarningOnly(true);

// Logs whether the protected sheet is warning-based to the console.
console.log(sampleProtectedSheet.isWarningOnly());

パラメータ

名前説明
warningOnlyBoolean

戻る

Protection - チェーン用の保護設定を表すオブジェクト。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。

  • https://www.googleapis.com/auth/spreadsheets.currentonly
  • https://www.googleapis.com/auth/spreadsheets