質問編集履歴
2
コードを少し書き換え、最下部のsetValueにprotectするコードを書きたい。
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 =
|
17
|
+
var fromRow = 4;
|
19
|
-
var fromCol =
|
18
|
+
var fromCol = 58;
|
20
|
-
var toCol =
|
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('
|
28
|
+
sheet.getRange('B:AW' + currentRow)
|
33
|
-
|
29
|
+
.setValue(protect
|
30
|
+
|
34
31
|
}
|
35
32
|
}
|
33
|
+
コード
|
34
|
+
```
|
36
35
|
|
37
36
|
### 試したこと
|
38
37
|
|
1
無茶苦茶になってますが、一先ずコードを書いてみました。
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
|
|