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

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

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

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

Q&A

2回答

2175閲覧

GASでGoogle Spreadsheetの保護されたセルを編集したい

kei765765

総合スコア0

Google Apps Script

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

0グッド

0クリップ

投稿2022/06/04 03:53

Google SpreadsheetとGASで簡単なアプリを作成しています。

仕様

  1. 使用者が数値を入力
  2. 図形で作成したボタンが押されるとスクリプトで1.で入力した値を元に計算
  3. 2.特定のセルに2.の計算結果を出力

やりたいこと

  • 使用者には1.のセル以外編集できないようにしたい

解決したいこと

  • 1.のセルを除いてシートを保護するとスクリプトから3.のセルにsetValueしようとしても保護されているため出力出来ない

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

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

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

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

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

guest

回答2

0

いくつか方法があります。
①Gform で入力させる→GSSで閲覧権限のみで公開
一番確実で簡単だけれども、使う頻度が高ければ高いほど、使用感は低くなりそうです。

②Browser.inputBox()で設置した入力欄を使う
入力欄をセルではなく、メッセージボックスにするやり方です。値の入力が遅れると、実行時間がどんどん長くなってしまうのが難点です。

③HTMLで書く。
②は「必要事項以外編集させない」ことができた代わりに、「必要な時以外もプログラムが動いてしまう」ことが難点でした。それを改善できるのがこの案です。
HTMLの中にJavascriptを入れることで、「(スプレッドシート上の)決まったところに値を入れ、ボタンを押す」という作業に比較的近い感覚で運用が可能です。
ただし、他の二つに比べ、作成時間がかかります。

投稿2022/06/05 07:10

ouoyoueee

総合スコア43

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

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

kei765765

2022/06/05 13:32

ご回答ありがとうございます。 今回はSpreadsheet上のセルに入力し、出力もセル上が前提でしたのでいずれの方法も使えなさそうです。 どうもやりたいことは出来なさそうなので考え方を変えて、使用者に編集されても問題ないようにスクリプト側で対処しようかなと思います。 - 値を保持しておいて、編集された場合にonEditで値を戻す - 書式等もスクリプト側で設定する など
ouoyoueee

2022/06/05 13:41

なるほど。GSS上にこだわる必要がないと思っていましたが、何か事情があるようですね。 その方法なら、バックアップとなるファイルを別で管理し、CopyTo -> rename の手順を踏むのが良さそうです。
guest

0

普通にアカウント単位でセルの権限は設定できますので、これを使うしかないでしょう

参考
https://forest.watch.impress.co.jp/docs/serial/googlesps/1242/493/amp.index.html

GASも同じアカウントを使うとなれば無理ではないでしょうか?

投稿2022/06/04 08:15

AbeTakashi

総合スコア4902

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

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

kei765765

2022/06/04 12:56

ご回答ありがとうございます。使用者のアカウントは分けています。 特定のセル保護すると、スクリプトは使用者の権限で動作するためスクリプトによる編集も出来なくなるのをなんとかしたいです。
AbeTakashi

2022/06/04 14:13

私の方でちゃんと検証してないのではっきりしたことは言えませんが、アカウントやデプロイ周り、ファイルの権限の調整などをすればその辺も何とかなるのではないでしょうか?という気がしています。 参考) https://for-dummies.net/gas-noobs/hints-for-excution-settings-and-sharing-settings-for-gas/ これを見ても解決できなさそうであれば、もう少しアカウントやどういう処理を組み込んでるかなどの現状を質問文に追記された方がいいかと思います。
kei765765

2022/06/05 13:24

参考URL先の内容がきちんと理解できていないので参考にさせて頂きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問