質問編集履歴
2
現状
title
CHANGED
File without changes
|
body
CHANGED
@@ -62,4 +62,7 @@
|
|
62
62
|
.onFormSubmit()
|
63
63
|
.create();
|
64
64
|
}
|
65
|
-
```
|
65
|
+
```
|
66
|
+
|
67
|
+
症状が完全に解決はしていないものの、ご助言いただいた方の回答をBAにいたしました。
|
68
|
+
現在、最下行に挿入されないことで悩んでもしょうがないので、getLastRowを使用せずにフォーム回答が行われた行を特定して処理を行っています。
|
1
処理概要の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,4 +10,56 @@
|
|
10
10
|
なお、問題は常に発生するというわけでもありません。
|
11
11
|
|
12
12
|
同じ状況である、経験したことがある、解決したことがあるという方は、ご助言賜りたく存じます。
|
13
|
-
よろしくお願いします。
|
13
|
+
よろしくお願いします。
|
14
|
+
|
15
|
+
<追記>
|
16
|
+
まず、。フォームの回答は、スクリプトを使わずに回答先の変更によってスプレッドシートに出力させています。
|
17
|
+
その上で、回答が出力されたAシートにおいて、回答データをもとに幾つかデータを追加しています。
|
18
|
+
さらに、任意のタイミング(メニューバーにボタン作成)でAシートのデータをB,C・・・シートに必要な分反映しているという感じです。
|
19
|
+
|
20
|
+
例)
|
21
|
+
「Aシート:フォーム回答先」
|
22
|
+
回答データ:身長, 体重
|
23
|
+
追加データ:BMI
|
24
|
+
|
25
|
+
この例をもとにスクリプトを書くとこのような形になっております。
|
26
|
+
Aシートでのデータ作成は、フォームの回答を受け付けたタイミングで行っています。
|
27
|
+
他シートへのデータ反映は、Aシートのデータを配列で取得し、他シートに書き込んでいます。
|
28
|
+
今回の問題とは直接の関係がないと思われますので、省略しております。
|
29
|
+
|
30
|
+
```Javascript
|
31
|
+
function getDatas(){
|
32
|
+
var sheet
|
33
|
+
= SpreadsheetApp
|
34
|
+
.openById("ID")
|
35
|
+
.getSheetByName("A");
|
36
|
+
var values
|
37
|
+
= sheet
|
38
|
+
.getDataRange()
|
39
|
+
.getValues();
|
40
|
+
var lastRow
|
41
|
+
= sheet
|
42
|
+
.getLastRow();
|
43
|
+
|
44
|
+
//A列:身長 B列:体重
|
45
|
+
//C列:BMI
|
46
|
+
values[lastRow][2]
|
47
|
+
= values[lastRow][1] / ( (values[lastRow][0]/100) * (values[lastRow][0]/100) );
|
48
|
+
|
49
|
+
sheet
|
50
|
+
.getDataRange()
|
51
|
+
.setValues(values);
|
52
|
+
}
|
53
|
+
|
54
|
+
function setTrigger(){
|
55
|
+
var form
|
56
|
+
= FormApp
|
57
|
+
.openById("ID");
|
58
|
+
|
59
|
+
ScriptApp
|
60
|
+
.newTrigger("getDatas")
|
61
|
+
.forForm(form)
|
62
|
+
.onFormSubmit()
|
63
|
+
.create();
|
64
|
+
}
|
65
|
+
```
|