回答編集履歴

2

修正

2022/10/30 08:27

投稿

退会済みユーザー
test CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
  以下の1行に書き換えます。
27
27
  ```js
28
- const setdate = toSheet.getRange(targetRow, 3 + r *3, 1, 3).setValues([date, name, cond]);
28
+ const setdate = toSheet.getRange(targetRow, 3 + r *3, 1, 3).setValues([[date, name, cond]]);
29
29
  // const setname = toSheet.getRange(targetRow, 4 + r *3, 1, 1).setValues(name); // この行は削除
30
30
  // const setcond = toSheet.getRange(targetRow, 5 + r *3, 1, 1).setValues(cond); // この行も削除
31
31
  ```

1

 

2022/10/30 03:53

投稿

退会済みユーザー
test CHANGED
@@ -1,17 +1,20 @@
1
- <2>
1
+ **<2>**
2
2
  >「setValuesで配列内の列単位で転記していくコードで記載しましたが、報告1、(入力日、入力者、推移) 報告2、、と行単位で転記していく方法も可能かと思います。」
3
3
  > どちらのアプローチがよいのでしょうか?
4
4
  > その理由も教えて欲しいです。
5
+  
6
+ 仮に、後半の「報告1、(入力日、入力者、推移) 報告2、、と行単位で転記していく方法」というのが
7
+ 「(入力日、入力者、推移)の3つをまとめて **setValues** を使って転記する方法」ということであるならば、そちらを推奨します。
8
+  
5
9
 
6
- 仮に、後半の「報告1、(入力日、入力者、推移) 報告2、、と行単位で転記していく方法」というのが
7
- 「(入力日、入力者、推移)の3つをまとめて **setValues** を使って転記する方法」ということであるならば、
8
- 現状のコードよりもその方法をとった方が、setValue(s) の呼び出し回数が少なくなり、高速化を期待できるという点で、推奨します。
9
- (現状は個票 1ページだけなので
10
- 理由
10
+ + 理由
11
11
  現状は、入力日、入力者、推移 それぞれを転記する際に1つ1つ setValue() を呼び出しているため、「個票」シートの6行のデータを書き込むのに setValue を18回呼び出しています。
12
12
  仮に setValues で入力日、入力者、推移 をまとめて書き込めば、「個票」シートの6行のデータを書き込むのに setValues を 6 回呼び出すだけで済みます。
13
+ 結果、処理の高速化が期待できます。(現状は個票1ページの転記だけなのでほとんど差は感じられないと思いますが)
14
+  
15
+  
13
16
 
14
- <3>上記<2>で行単位で転記の場合のコード
17
+ **<3>上記<2>で行単位で転記の場合のコード**
15
18
  下記のように、 setValues で date、name、cond を配列にしてまとめて書き込みます。
16
19
  具体的には、コード終盤の下の3行を
17
20
  ```js