回答編集履歴

3

 

2022/05/17 12:26

投稿

退会済みユーザー
test CHANGED
@@ -26,7 +26,7 @@
26
26
  const range = useSheet.getRange(changedRow, changedCol + i);
27
27
 
28
28
  // 設定シートから入力規則と初期値を受け取る。
29
- const [rule, initialValue] = getRule(category1Value, settingData, i);
29
+ const [rule, initialValue] = getRuleAndInitialValue(category1Value, settingData, i);
30
30
 
31
31
  // 入力規則を設定
32
32
  range.setDataValidation(rule);
@@ -36,7 +36,7 @@
36
36
  }
37
37
  }
38
38
 
39
- function getRule(category1Value, settingData, column) {
39
+ function getRuleAndInitialValue(category1Value, settingData, column) {
40
40
  // カテゴリ1に対応するカテゴリ2を入れておくところ
41
41
  let catgory2List = [];
42
42
 
@@ -76,17 +76,17 @@
76
76
  # 説明
77
77
   
78
78
  前のコードから変更したところ:
79
- ① getRule 関数:入力規則(プルダウンの設定項目)とともに、初期値(該当するデータの最初の値)も返すようにしています。
79
+ ① getRuleAndInitialValue 関数:入力規則(プルダウンの設定項目)とともに、初期値(該当するデータの最初の値)も返すようにしています。
80
80
  (catgory2List[0] が初期値(=条件に当てはまるデータの最初の値)です)
81
81
  ```js
82
82
  return [rule, catgory2List[0]];
83
83
  ```
84
84
   
85
- ② onEdit 関数の中で getRule 関数から値を受け取るところでは、入力規則とともに初期値を受け取り、
85
+ ② onEdit 関数の中で getRuleAndInitialValue 関数から値を受け取るところでは、入力規則とともに初期値を受け取り、
86
86
  入力規則を設定した**後**に、そのセルに初期値を上書きしています。
87
87
  ```js
88
88
  // 設定シートから入力規則と初期値を受け取る。
89
- const [rule, initialValue] = getRule(category1Value, settingData, i);
89
+ const [rule, initialValue] = getRuleAndInitialValue(category1Value, settingData, i);
90
90
 
91
91
  // 入力規則を設定
92
92
  range.setDataValidation(rule);

2

修正

2022/05/17 12:18

投稿

退会済みユーザー
test CHANGED
@@ -47,13 +47,13 @@
47
47
  }
48
48
  });
49
49
  if (catgory2List.length === 0) {
50
- catgory2List.push(['']);
50
+ catgory2List.push('');
51
51
  }
52
52
 
53
53
  // プルダウンのデータを設定する
54
54
  const rule = SpreadsheetApp.newDataValidation().requireValueInList(catgory2List, true);
55
55
  rule.setAllowInvalid(false).build();
56
- return [rule, catgory2List[0][0]];
56
+ return [rule, catgory2List[0]];
57
57
  }
58
58
 
59
59
  /**
@@ -77,9 +77,9 @@
77
77
   
78
78
  前のコードから変更したところ:
79
79
  ① getRule 関数:入力規則(プルダウンの設定項目)とともに、初期値(該当するデータの最初の値)も返すようにしています。
80
- (catgory2List[0][0] が初期値(=条件に当てはまるデータの最初の値)です)
80
+ (catgory2List[0] が初期値(=条件に当てはまるデータの最初の値)です)
81
81
  ```js
82
- return [rule, catgory2List[0][0]];
82
+ return [rule, catgory2List[0]];
83
83
  ```
84
84
   
85
85
  ② onEdit 関数の中で getRule 関数から値を受け取るところでは、入力規則とともに初期値を受け取り、
@@ -98,6 +98,6 @@
98
98
  ③ 使用シートのプルダウンで選んだデータが設定シートの中にない場合は、空白文字を設定するように変えています。
99
99
  ```js
100
100
  if (catgory2List.length === 0) {
101
- catgory2List.push(['']);
101
+ catgory2List.push('');
102
102
  }
103
103
  ```

1

 

2022/05/17 11:56

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,4 @@
1
+ 下記のようにしてはいかがでしょうか。
1
2
  ```js
2
3
  /**
3
4
  * ①グローバル変数の定義
@@ -83,7 +84,7 @@
83
84
   
84
85
  ② onEdit 関数の中で getRule 関数から値を受け取るところでは、入力規則とともに初期値を受け取り、
85
86
  入力規則を設定した**後**に、そのセルに初期値を上書きしています。
86
- ```
87
+ ```js
87
88
  // 設定シートから入力規則と初期値を受け取る。
88
89
  const [rule, initialValue] = getRule(category1Value, settingData, i);
89
90
 
@@ -95,7 +96,7 @@
95
96
  ```
96
97
   
97
98
  ③ 使用シートのプルダウンで選んだデータが設定シートの中にない場合は、空白文字を設定するように変えています。
98
- ```
99
+ ```js
99
100
  if (catgory2List.length === 0) {
100
101
  catgory2List.push(['']);
101
102
  }