質問編集履歴
2
コードを少し書き換え、最下部のsetValueにprotectするコードを書きたい。
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 from
|
35
|
+
var fromCol = 58;
|
36
36
|
|
37
|
-
var fromCol = 59; // BG列から
|
38
|
-
|
39
|
-
var toCol =
|
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
|
-
s
|
57
|
+
.setValue(protect
|
64
58
|
|
65
|
-
|
59
|
+
|
66
60
|
|
67
61
|
}
|
68
62
|
|
69
63
|
}
|
64
|
+
|
65
|
+
コード
|
66
|
+
|
67
|
+
```
|
70
68
|
|
71
69
|
|
72
70
|
|
1
無茶苦茶になってますが、一先ずコードを書いてみました。
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
|
|