teratail header banner
teratail header banner
質問するログイン新規登録

質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

1回答

1771閲覧

GASで特定セルの保護をしたいが、できない。

noko67

総合スコア0

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2023/01/09 06:28

0

0

前提

スプレッドシートをコピーすると、保護が解除されてしまうため、GASで自動的に必要な範囲を保護するスクリプトを組みたい。

実現したいこと

GASで特定セルの範囲を保護する

発生している問題・エラーメッセージ

TypeError: protectRange.protect is not a function sheet2pro @ シートの保護2.gs:8

該当のソースコード

function sheet2pro() { //スクリプトに紐付いたアクティブなシートを読み込む var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var mySheet = spreadsheet.getSheetByName('シート2'); //読み込んだシートに保護を設定し、Protectionオブジェクトを変数に格納 let protectRange = mySheet.getRangeList(['A1:A302', 'B2', 'C2:G302', 'H1:L302', 'M1:M2']); let protections = protectRange.protect(); //保護したシートで編集可能なユーザーを取得 let userList = protections.getEditors(); //オーナーのみ編集可能にするため、編集ユーザーをすべて削除 //オーナーの編集権限は削除できないため、オーナーのみ編集可能に protections.removeEditors(userList); }

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

protectRangeにprotectなんてメソッドは無いと言われています。

getRangeListにて得られるのはRangeListクラスです。
そしてprotectメソッドがあるのはRangeクラスです。

RangeList.getRangesにてRangeクラスの配列が得られるので、それをループで処理することになります。

投稿2023/01/09 08:45

YAmaGNZ

総合スコア10609

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問