回答編集履歴

3

参考追加

2022/10/26 09:40

投稿

Cocode
Cocode

スコア2316

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

2022/10/25 10:24

投稿

Cocode
Cocode

スコア2316

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

2022/10/25 10:01

投稿

Cocode
Cocode

スコア2316

test CHANGED
@@ -54,7 +54,7 @@
54
54
  const subject = '新規入力あり';
55
55
 
56
56
  // フォームの各項目名を取得
57
- const [titles] = sheet.getRange(1, 1, 1, lastCol).getValues();
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');