質問するログイン新規登録

回答編集履歴

1

onEdit() が複数列で反応するようにプログラムを修正しました

2017/11/04 05:17

投稿

rokuni
rokuni

スコア174

answer CHANGED
@@ -9,7 +9,8 @@
9
9
  ```
10
10
  function onEdit(event) {
11
11
  const INPUT_SHEET_NAME = "シート1" // 入力シート名
12
+ // const INPUT_COLUMN = 2; // 入力セルの列位置
12
- const INPUT_COLUMN = 2; // 入力セルの列位置
13
+ const INPUT_COLUMNS = [2,3]; // 入力セルの列位置(複数列)
13
14
  const INPUT_RANGE = "A1:A3"; // 入力規則にしている範囲
14
15
 
15
16
  // 処理中のシート、範囲、値を取得
@@ -19,9 +20,10 @@
19
20
  var newValue = editRange.getValue();
20
21
 
21
22
  // onEdit イベントは全シート全セルの編集で起動されるため、
22
- //「シート1」「B列」かつ「入力値あり」の場合のみ後続処理
23
+ //「シート1」「入力可能列」かつ「入力値あり」の場合のみ後続処理
23
24
  if ( editSheet.getName() != INPUT_SHEET_NAME ) return;
24
- if ( editRange.getColumn() != INPUT_COLUMN ) return;
25
+ // if ( editRange.getColumn() != INPUT_COLUMN ) return;
26
+ if ( INPUT_COLUMNS.indexOf(editRange.getColumn()) == -1) return; // 入力可能列の複数に対応
25
27
  if ( newValue == "") return;
26
28
 
27
29
  // 入力値に対応した一部文字色付きセルで入力セルを上書きする