質問編集履歴

2

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

2021/07/05 01:38

投稿

tttttt
tttttt

スコア6

test CHANGED
File without changes
test CHANGED
@@ -28,21 +28,17 @@
28
28
 
29
29
  ### 該当のソースコード
30
30
 
31
- function protect() {
31
+ function protect() {
32
32
 
33
- // 変更を検知するセル範囲
33
+ var fromRow = 4;
34
34
 
35
- var fromRow = 5; // 5行目から
35
+ var fromCol = 58;
36
36
 
37
- var fromCol = 59; // BG列から
38
-
39
- var toCol = 60; // BH列まで
37
+ var toCol = 58;
40
38
 
41
39
 
42
40
 
43
41
  var ss = SpreadsheetApp.getActiveSpreadsheet();
44
-
45
- //var sheet = ss.getActiveSheet()
46
42
 
47
43
  var sheet = ss.getActiveSheet();
48
44
 
@@ -52,21 +48,23 @@
52
48
 
53
49
 
54
50
 
55
- // 編集したセルが指定したセル範囲内かどうか判定
56
-
57
- if(currentRow >= fromRow && currentCol >= fromCol && currentCol <= toCol) { 
51
+ if(currentRow >= fromRow && currentCol >= fromCol && currentCol <= toCol && value[1][1]==TRUE) { 
58
52
 
59
53
 
60
54
 
61
- // 指定したセル範囲内であれば、指定列を保護する
55
+ sheet.getRange('B:AW' + currentRow)
62
56
 
63
- sheet.getRange('C:AX' + currentRow)
57
+ .setValue(protect
64
58
 
65
- var protection = spreadsheet.getRange().protect();
59
+
66
60
 
67
61
  }
68
62
 
69
63
  }
64
+
65
+ コード
66
+
67
+ ```
70
68
 
71
69
 
72
70
 

1

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

2021/07/05 01:38

投稿

tttttt
tttttt

スコア6

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Googleスプレッドシートで、列【BG】【BH】にチェックボックスを521行まで設けており、
6
6
 
7
- チェック(TRUE)になると、それに該当する行のみ保護する方法はないでしょうか?
7
+ チェック(TRUE)になると、それに該当する行「C:AX」のみ保護する方法はないでしょうか?
8
8
 
9
9
  当方、素人の為、IF?protect?と想像してみましたが、結局混乱し形にできませんでした。
10
10
 
@@ -28,13 +28,45 @@
28
28
 
29
29
  ### 該当のソースコード
30
30
 
31
+ function protect() {
32
+
33
+ // 変更を検知するセル範囲
34
+
35
+ var fromRow = 5; // 5行目から
36
+
37
+ var fromCol = 59; // BG列から
38
+
39
+ var toCol = 60; // BH列まで
31
40
 
32
41
 
33
- ```ここに言語名を入力
34
42
 
35
- ソースコード
43
+ var ss = SpreadsheetApp.getActiveSpreadsheet();
36
44
 
45
+ //var sheet = ss.getActiveSheet()
46
+
47
+ var sheet = ss.getActiveSheet();
48
+
49
+ var currentRow = sheet.getActiveCell().getRow();
50
+
51
+ var currentCol = sheet.getActiveCell().getColumn();
52
+
53
+
54
+
55
+ // 編集したセルが指定したセル範囲内かどうか判定
56
+
57
+ if(currentRow >= fromRow && currentCol >= fromCol && currentCol <= toCol) { 
58
+
59
+
60
+
61
+ // 指定したセル範囲内であれば、指定列を保護する
62
+
63
+ sheet.getRange('C:AX' + currentRow)
64
+
65
+ var protection = spreadsheet.getRange().protect();
66
+
37
- ```
67
+ }
68
+
69
+ }
38
70
 
39
71
 
40
72