回答編集履歴
5
test
CHANGED
@@ -190,11 +190,11 @@
|
|
190
190
|
|
191
191
|
東海エリアシートのトリガーは現状のまま(変更時発火)にしておきます。
|
192
192
|
|
193
|
-
東海エリアシートの適当なセルに現時点の最終行を記録しておき
|
193
|
+
アイデアとしては、東海エリアシートの適当なセルに現時点の最終行をスクリプトで記録しておき、
|
194
|
-
|
194
|
+
|
195
|
-
フォームの回答が
|
195
|
+
フォームの回答が行われて、東海エリアシートの変更イベントが発火したら、
|
196
|
-
|
196
|
+
|
197
|
-
変更時点の最終行数と記録していた最終行数を比較して、異なれば東海エリア
|
197
|
+
変更時点の最終行数と記録していた最終行数とを比較して、異なっていれば東海エリアの回答データが追加されたとみなし、グループ通知処理を行う、という流れです。
|
198
198
|
|
199
199
|
|
200
200
|
|
4
追加
test
CHANGED
@@ -173,3 +173,67 @@
|
|
173
173
|
・getActiveSheetやopenByID 経由ではなく、トリガー関数の引数から回答データを取得する
|
174
174
|
|
175
175
|
など、御自分で工夫してみて下さい。
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
---
|
182
|
+
|
183
|
+
#別解
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
こっちの方が簡単かもしれません。
|
188
|
+
|
189
|
+
↓↓↓
|
190
|
+
|
191
|
+
東海エリアシートのトリガーは現状のまま(変更時発火)にしておきます。
|
192
|
+
|
193
|
+
東海エリアシートの適当なセルに現時点の最終行を記録しておきます。
|
194
|
+
|
195
|
+
フォームの回答がなされて、シートの変更イベントが発火したら、
|
196
|
+
|
197
|
+
変更時点の最終行数と記録していた最終行数を比較して、異なれば東海エリアにデータが追加されたとみなしてグループ通知処理を行います。
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
[東海エリア]シートのスクリプト
|
202
|
+
|
203
|
+
```js
|
204
|
+
|
205
|
+
function SendToGroupLine() {
|
206
|
+
|
207
|
+
ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
|
208
|
+
|
209
|
+
// 記録しておいた最終行数を取得
|
210
|
+
|
211
|
+
oldRowLen = ss.getRange("Z1").getValue();
|
212
|
+
|
213
|
+
// 現在の最終行数を取得
|
214
|
+
|
215
|
+
currentRowLen = ss.getLastRow();
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
if (oldRowLen != currentRowLen) {
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
Logger.log("東海エリアのデータが追加されました")
|
224
|
+
|
225
|
+
// グループ通知処理
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
}
|
230
|
+
|
231
|
+
// 現在の最終行数をZ1セルに記録
|
232
|
+
|
233
|
+
ss.getRange("Z1").setValue(currentRowLen);
|
234
|
+
|
235
|
+
}
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
```
|
3
test
CHANGED
@@ -170,4 +170,6 @@
|
|
170
170
|
|
171
171
|
・getValues()を使用して動作速度を速める
|
172
172
|
|
173
|
+
・getActiveSheetやopenByID 経由ではなく、トリガー関数の引数から回答データを取得する
|
174
|
+
|
173
175
|
など、御自分で工夫してみて下さい。
|
2
修正
test
CHANGED
@@ -154,7 +154,7 @@
|
|
154
154
|
|
155
155
|
トリガー設定例
|
156
156
|
|
157
|
-
![イメージ説明](6
|
157
|
+
![イメージ説明](6a4d5485e9057c3eb70df757c9d8d9bd.png)
|
158
158
|
|
159
159
|
※東海エリアシート側のトリガー及びスクリプトは不要なので削除しておくこと。残っていると二重に通知が来る。
|
160
160
|
|
@@ -164,4 +164,10 @@
|
|
164
164
|
|
165
165
|
注意:上記コードは最適化する余地がたくさんありますが、理解しやすいように、あえて質問文記載のコードからあまり変えないようにしています。
|
166
166
|
|
167
|
+
たとえば
|
168
|
+
|
169
|
+
・if文で都道府県を判定するのではなく、エリア設定を別のスプレッドシートに入力しておき、複数エリアに対応させる
|
170
|
+
|
171
|
+
・getValues()を使用して動作速度を速める
|
172
|
+
|
167
|
-
|
173
|
+
など、御自分で工夫してみて下さい。
|
1
修正
test
CHANGED
@@ -36,17 +36,11 @@
|
|
36
36
|
|
37
37
|
|
38
38
|
|
39
|
-
|
40
|
-
|
41
39
|
下記のように、**フォーム回答の集計元シート**のスクリプトに、
|
42
40
|
|
43
41
|
都道府県を判定して該当する都道府県の場合はフラグをtrueにして送信するコードを記述します。
|
44
42
|
|
45
43
|
|
46
|
-
|
47
|
-
(**フォーム回答の集計元シート**のトリガーに、「フォーム送信時」に下記SendToGroupLine関数を実行するように設定しておく)
|
48
|
-
|
49
|
-
(エリアシート側のトリガー及びスクリプトは不要なので削除しておく)
|
50
44
|
|
51
45
|
```js
|
52
46
|
|
@@ -156,7 +150,17 @@
|
|
156
150
|
|
157
151
|
```
|
158
152
|
|
153
|
+
(上記コード保存後、**フォーム回答の集計元シート**のトリガーに、「フォーム送信時」に下記SendToGroupLine関数を実行するように設定しておく)
|
159
154
|
|
155
|
+
トリガー設定例
|
156
|
+
|
157
|
+
![イメージ説明](675bf3578601f6501069e4a81ddcf3e1.png)
|
158
|
+
|
159
|
+
※東海エリアシート側のトリガー及びスクリプトは不要なので削除しておくこと。残っていると二重に通知が来る。
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
--
|
160
164
|
|
161
165
|
注意:上記コードは最適化する余地がたくさんありますが、理解しやすいように、あえて質問文記載のコードからあまり変えないようにしています。
|
162
166
|
|