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

質問編集履歴

2

コードを少し書き換え、最下部のsetValueにprotectするコードを書きたい。

2021/07/05 01:38

投稿

tttttt
tttttt

スコア6

title CHANGED
File without changes
body CHANGED
@@ -13,26 +13,25 @@
13
13
  ```
14
14
 
15
15
  ### 該当のソースコード
16
- function protect() {
16
+ function protect() {
17
- // 変更を検知するセル範囲
18
- var fromRow = 5; // 5行目から
17
+ var fromRow = 4;
19
- var fromCol = 59; // BG列から
18
+ var fromCol = 58;
20
- var toCol = 60; // BH列まで
19
+ var toCol = 58;
21
20
 
22
21
  var ss = SpreadsheetApp.getActiveSpreadsheet();
23
- //var sheet = ss.getActiveSheet()
24
22
  var sheet = ss.getActiveSheet();
25
23
  var currentRow = sheet.getActiveCell().getRow();
26
24
  var currentCol = sheet.getActiveCell().getColumn();
27
25
 
28
- // 編集したセルが指定したセル範囲内かどうか判定
29
- if(currentRow >= fromRow && currentCol >= fromCol && currentCol <= toCol) { 
26
+ if(currentRow >= fromRow && currentCol >= fromCol && currentCol <= toCol && value[1][1]==TRUE) { 
30
27
 
31
- // 指定したセル範囲内であれば、指定列を保護する
32
- sheet.getRange('C:AX' + currentRow)
28
+ sheet.getRange('B:AW' + currentRow)
33
- var protection = spreadsheet.getRange().protect();
29
+ .setValue(protect
30
+
34
31
  }
35
32
  }
33
+ コード
34
+ ```
36
35
 
37
36
  ### 試したこと
38
37
 

1

無茶苦茶になってますが、一先ずコードを書いてみました。

2021/07/05 01:38

投稿

tttttt
tttttt

スコア6

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  Googleスプレッドシートで、列【BG】【BH】にチェックボックスを521行まで設けており、
4
- チェック(TRUE)になると、それに該当する行のみ保護する方法はないでしょうか?
4
+ チェック(TRUE)になると、それに該当する行「C:AX」のみ保護する方法はないでしょうか?
5
5
  当方、素人の為、IF?protect?と想像してみましたが、結局混乱し形にできませんでした。
6
6
  皆様の知恵、技術をお貸し下さい。。。。
7
7
  コードもなくて申し訳ないですが、宜しくお願いいたします。
@@ -13,10 +13,26 @@
13
13
  ```
14
14
 
15
15
  ### 該当のソースコード
16
+ function protect() {
17
+ // 変更を検知するセル範囲
18
+ var fromRow = 5; // 5行目から
19
+ var fromCol = 59; // BG列から
20
+ var toCol = 60; // BH列まで
16
21
 
22
+ var ss = SpreadsheetApp.getActiveSpreadsheet();
23
+ //var sheet = ss.getActiveSheet()
24
+ var sheet = ss.getActiveSheet();
25
+ var currentRow = sheet.getActiveCell().getRow();
26
+ var currentCol = sheet.getActiveCell().getColumn();
27
+
28
+ // 編集したセルが指定したセル範囲内かどうか判定
29
+ if(currentRow >= fromRow && currentCol >= fromCol && currentCol <= toCol) { 
30
+
17
- ```ここに言語名入力
31
+ // 指定したセル範囲内であれば、指定列保護する
18
- ソースコード
32
+ sheet.getRange('C:AX' + currentRow)
33
+ var protection = spreadsheet.getRange().protect();
19
- ```
34
+ }
35
+ }
20
36
 
21
37
  ### 試したこと
22
38