回答編集履歴
3
参考追加
test
CHANGED
@@ -96,3 +96,13 @@
|
|
96
96
|
|
97
97
|
- この方法ですと、フォームの質問数が増減したときにコードも修正しなければなりませんので非効率ですが、分かりやすいかとは思います。
|
98
98
|
- `\n`は改行コードです。改行させたいところに書きます。htmlの`<br>`みたいな感じ。
|
99
|
+
|
100
|
+
### 参考:フォーム送信時に実行するGASについて
|
101
|
+
Googleフォームで回答が送信されたときをトリガーにして、送信された回答内容(値)を取得してGASの関数を実行させる方法には二通りあります。
|
102
|
+
|
103
|
+
- フォーム送信 → スプレッドシートに出力 → 値取得・関数実行
|
104
|
+
- 参考:https://tatsuya-note.com/gas-autoreplymail-forms/
|
105
|
+
- フォーム送信 → 値取得・関数実行
|
106
|
+
- 参考:https://walking-elephant.blogspot.com/2021/01/gas.formapp.html
|
107
|
+
|
108
|
+
ですので、質問者様の「A列がアクティブで値が何か入力されたら実行する」という条件は、今回の「フォームが送信された時に自動返信メールを送りたい」を実装するにはあまり適切な方法ではありません。
|
2
body
test
CHANGED
@@ -78,3 +78,21 @@
|
|
78
78
|
5つめの項目名: 5つめの回答内容
|
79
79
|
6つめの項目名: 6つめの回答内容
|
80
80
|
```
|
81
|
+
|
82
|
+
---
|
83
|
+
|
84
|
+
`const body = data.map(...).join('\n')`が何をしているのかよく別れなければ、本文を1行ずつ手作業で書いてもいいです。
|
85
|
+
その場合以下のようになります。
|
86
|
+
|
87
|
+
```javascript
|
88
|
+
let body = `${titles[0]}: ${data[0]}\n`;
|
89
|
+
body += `${titles[1]}: ${data[1]}\n`;
|
90
|
+
body += `${titles[2]}: ${data[2]}\n`;
|
91
|
+
body += `${titles[3]}: ${data[3]}\n`;
|
92
|
+
body += `${titles[4]}: ${data[4]}\n`;
|
93
|
+
body += `${titles[5]}: ${data[5]}\n`;
|
94
|
+
body += `${titles[6]}: ${data[6]}`;
|
95
|
+
```
|
96
|
+
|
97
|
+
- この方法ですと、フォームの質問数が増減したときにコードも修正しなければなりませんので非効率ですが、分かりやすいかとは思います。
|
98
|
+
- `\n`は改行コードです。改行させたいところに書きます。htmlの`<br>`みたいな感じ。
|
1
lastCol
test
CHANGED
@@ -54,7 +54,7 @@
|
|
54
54
|
const subject = '新規入力あり';
|
55
55
|
|
56
56
|
// フォームの各項目名を取得
|
57
|
-
const [titles] = sheet.getRange(1, 1, 1,
|
57
|
+
const [titles] = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
|
58
58
|
|
59
59
|
// 1行ずつ「項目名:回答内容」の形式で本文を作成
|
60
60
|
const body = data.map((d, i) => `${titles[i]}: ${d}`).join('\n');
|