回答編集履歴

1

追加分の追記

2022/06/03 10:00

投稿

k.a_teratail
k.a_teratail

スコア845

test CHANGED
@@ -1,12 +1,12 @@
1
1
  ```gs
2
2
  // 該当セルの行列とセルの値
3
- let a2_6CellStr = {
3
+ let a2_6CellStr = [
4
- '2,1': "A2"
4
+ '2,1'
5
- , '3,1': "A3"
5
+ , '3,1'
6
- , '4,1': "A4"
6
+ , '4,1'
7
- , '5,1': "A5"
7
+ , '5,1'
8
- , '6,1': "A6"
8
+ , '6,1'
9
- }
9
+ ]
10
10
 
11
11
  let ss = SpreadsheetApp.getActiveSpreadsheet()
12
12
  let sheetName = 'シート31'
@@ -24,14 +24,16 @@
24
24
  let editCol = e.range.getColumn()
25
25
 
26
26
  // A2~A6セルの場合
27
- if (`${editRow},${editCol}` in a2_6CellStr) {
27
+ if (a2_6CellStr.filter(e => { if(e == `${editRow},${editCol}`) return true }) != "") {
28
28
 
29
29
  // 入力された値
30
30
  let editValue = e.value
31
+ // 入力される前の値
32
+ let oldEditValue = e.oldValue
31
33
 
32
- if (a2_6CellStr[`${editRow},${editCol}`] != editValue) {
34
+ if (oldEditValue != editValue) {
33
35
  // 該当セルが変更された場合
34
- sheet.getRange("C2:C6").setValue([].fill(false, 0, 5))
36
+ sheet.getRange(`C${editRow}`).setValue(false)
35
37
  }
36
38
  }
37
39
 
@@ -60,3 +62,8 @@
60
62
  A2~A6セルの値は不明だったので「A2〜A6」で定義しています。
61
63
  C2〜C6セルのチェック確認については、どのような仕様かわからないので、「シート31」であれば毎回起動する状態です。
62
64
 
65
+ ----
66
+
67
+ ## 追記
68
+ セルA2が変更された → セルC2のチェックを外すを
69
+ A6 → C6まで対応しました。