保護されている範囲とシートにアクセスして変更する。保護されている範囲は、
名前付き範囲を指定できます保護されているシートには、保護されていない領域が含まれている場合があります。対象
旧バージョンの 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()); }
パラメータ
名前 | 型 | 説明 |
---|---|---|
emailAddress | String | 追加するユーザーのメールアドレス。 |
戻る
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()); }
パラメータ
名前 | 型 | 説明 |
---|---|---|
user | User | 追加するユーザーの表現。 |
戻る
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()); }
パラメータ
名前 | 型 | 説明 |
---|---|---|
emailAddresses | String[] | 追加するユーザーのメールアドレスの配列。 |
戻る
Protection
- チェーン用の保護設定を表すオブジェクト。
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
addTargetAudience(audienceId)
指定した対象グループを保護範囲の編集者として追加します。
パラメータ
名前 | 型 | 説明 |
---|---|---|
audienceId | String | 追加する対象グループの 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()); }
パラメータ
名前 | 型 | 説明 |
---|---|---|
emailAddress | String | 削除するユーザーのメールアドレス。 |
戻る
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()); }
パラメータ
名前 | 型 | 説明 |
---|---|---|
user | User | 削除するユーザーの表現。 |
戻る
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); }
パラメータ
名前 | 型 | 説明 |
---|---|---|
emailAddresses | String[] | 削除するユーザーのメールアドレスの配列。 |
戻る
Protection
- チェーン用の保護設定を表すオブジェクト
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
removeTargetAudience(audienceId)
保護されている範囲の編集者として指定した対象グループを削除します。
パラメータ
名前 | 型 | 説明 |
---|---|---|
audienceId | String | 削除する対象グループの 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);
パラメータ
名前 | 型 | 説明 |
---|---|---|
description | String | 保護されている範囲またはシートの説明。 |
戻る
Protection
- チェーン用の保護設定を表すオブジェクト。
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
setDomainEdit(editable)
スプレッドシートを所有するドメイン内のすべてのユーザーに、スプレッドシートの編集権限があるかどうかを設定します。 保護されている範囲やシートです。明示的な編集権限を持つユーザーは、これらの操作を この設定に関係なく、保護対象領域の編集は編集できません。スプレッドシートで例外がスローされる場合、例外がスローされます。 Google Workspace ドメインに属していない(つまり、gmail.com アカウントによって所有されている)
パラメータ
名前 | 型 | 説明 |
---|---|---|
editable | Boolean | true : スプレッドシートを所有するドメイン内のすべてのユーザーが、
保護されている範囲またはシートの編集権限そうでない場合は 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());
パラメータ
名前 | 型 | 説明 |
---|---|---|
namedRange | NamedRange | 保護されている範囲に関連付ける既存の名前付き範囲。 |
戻る
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());
パラメータ
名前 | 型 | 説明 |
---|---|---|
range | Range | 編集から保護する新しい範囲。 |
戻る
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.
パラメータ
名前 | 型 | 説明 |
---|---|---|
rangeName | String | 保護する名前付き範囲の名前。 |
戻る
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); }
パラメータ
名前 | 型 | 説明 |
---|---|---|
ranges | Range[] | 保護されているシート内に保護されていない範囲の配列です。 |
戻る
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());
パラメータ
名前 | 型 | 説明 |
---|---|---|
warningOnly | Boolean |
戻る
Protection
- チェーン用の保護設定を表すオブジェクト。
承認
このメソッドを使用するスクリプトには、次のスコープの 1 つ以上を使用した承認が必要です。
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets