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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

1236閲覧

シートを保護するGAS

shopp_life

総合スコア3

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2021/06/20 05:17

編集2021/06/22 13:34

###特定の文字を検出し、保護するGAS

Googleスプレッドシートで、特定のセル(B3)に、特定の文字(「作業中」)が入力された場合、シート全体を保護するGAS(オーナーのみ編集可)を作っているのですが、何しろ独学初心者のため困っております...

シートを保護するGASはこのコードでしようとしているのですが、特定の文字を検出してシートを保護するようにするにはどう組み込んだらいいのかが分からず困っております....

参考にした記事URL

function protectSheet(){ //スクリプトに紐付いたアクティブなシートを読み込む let mySheet = SpreadsheetApp.getActiveSheet(); //読み込んだシートに保護を設定し、Protectionオブジェクトを変数に格納 let protections = mySheet.protect(); //保護したシートで編集可能なユーザーを取得 let userList = protections.getEditors(); //オーナーのみ編集可能にするため、編集ユーザーをすべて削除 //オーナーの編集権限は削除できないため、オーナーのみ編集可能に protections.removeEditors(userList); }

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

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

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

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

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

sawa

2021/06/22 07:14

GASの質問なので、 Google Apps Script のタグを付けた方が良いです
shopp_life

2021/06/22 13:34

ありがとうございます! 一度入れたのですが表示されず入れずにしていました... 入れ方を間違えておりました(汗)
guest

回答1

0

ベストアンサー

質問とは異なりますますが、特定の文字を入力する方法ではなく、カスタムメニューを追加して、ユーザーがメニューから「作業中」を選ぶと保護がかかる仕組みにしてはいかがでしょうか?

カスタムメニューを追加して、自分の作ったGASを呼び出すワザは ネット上にたくさんサンプルがあります。

google 検索結果

カスタムメニューは採用が難しいとのことなので、編集操作をしたときに呼び出される onEdit()や onChange()を使う方法も提案しておきます。

ただし、フツーにスプレッドシートを使っていれば、”編集した”=onEdit や"変更した"=onChange となるタイミングは多いため、予想外の挙動になってしまうという話もチラホラ聞きます。

採用するかどうかは、ユーザーさまの利用状況とあわせて検討したほうがいいでしょう。

onEdit() onChange() の検索

投稿2021/06/23 01:41

編集2021/06/23 07:02
Yoshi88

総合スコア623

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

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

shopp_life

2021/06/23 06:48

ご回答ありがとうございます! B3のセルの「作業中」は、別のシートからインポートされていて、その別シートで作業中を選択すると、このシートのB3が変わるようになっているので、カスタムメニュー では難しそうです....(泣)
Yoshi88

2021/06/23 07:02 編集

なかなか変わったデータロックの制御方式を採用しているのですね。勉強になりました。 では カスタムメニューではなく onEdit() や onChange()でシート保護の関数を呼び出してみては?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問