質問編集履歴

5

コードを最新に更新しました。

2018/10/17 04:50

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -146,21 +146,23 @@
146
146
 
147
147
 
148
148
 
149
- /* 承認・否認 */
149
+ /* 承認・否認 */
150
-
150
+
151
- html += '<a href="https://******/exec?p=ok&t='+(timeStamp - 0)+'">承認</a><br>';
151
+ html += '<a href="https://script.google.com/*******/exec?p=ok&t='+timeStamp+'">承認</a><br>';
152
-
152
+
153
- html += '<a href="https://******/exec?p=ng&t='+(timeStamp - 0)+'">否認</a><br>';
153
+ html += '<a href="https://script.google.com/*******/exec?p=ng&t='+timeStamp+'">否認</a><br>';
154
154
 
155
155
 
156
156
 
157
157
 
158
158
 
159
+
160
+
159
161
  /* メールを送信 */
160
162
 
161
163
  if
162
164
 
163
- (answer2 == '部門1') {
165
+ (answer2 == '1課') {
164
166
 
165
167
  GmailApp.sendEmail(
166
168
 
@@ -184,7 +186,7 @@
184
186
 
185
187
  else if
186
188
 
187
- (answer2 == '部門2') {
189
+ (answer2 == '2課') {
188
190
 
189
191
  GmailApp.sendEmail(
190
192
 
@@ -348,9 +350,9 @@
348
350
 
349
351
  }
350
352
 
353
+
354
+
351
- }
355
+ }
352
-
353
-
354
356
 
355
357
  function setter(timestamp, str) {
356
358
 
@@ -360,9 +362,9 @@
360
362
 
361
363
  var row = -1;
362
364
 
363
- for(var i = 0; i < vals.length; i++) {
365
+ for(var i = 1; i < vals.length; i++) {
364
-
366
+
365
- if((vals[i][0] - 0) == timestamp) {
367
+ if(Utilities.formatDate(vals[i][0], "JST", "yyyy/MM/dd HH:mm:ss") == timestamp) {
366
368
 
367
369
  row = i + 1;
368
370
 
@@ -376,6 +378,8 @@
376
378
 
377
379
  }
378
380
 
381
+ }
382
+
379
383
 
380
384
 
381
385
 

4

誤記修正

2018/10/17 04:50

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -282,6 +282,8 @@
282
282
 
283
283
  </html>
284
284
 
285
+
286
+
285
287
  ------------------
286
288
 
287
289
  ●Error.html

3

スクリプトを最新に更新

2018/10/03 02:52

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -74,17 +74,29 @@
74
74
 
75
75
  ●send_email.gs
76
76
 
77
+
78
+
77
79
  function sendHtmlMail(e) {
78
80
 
81
+
82
+
79
- var answer1 = e.namedValues['氏名']; //フォーム作成時に設定した項目名
83
+ var answer1 = e.namedValues['購入者 氏名']; //フォーム作成時に設定した項目名
80
84
 
81
85
  var answer2 = e.namedValues['部門']; //フォーム作成時に設定した項目名
82
86
 
83
87
  var answer3 = e.namedValues['商品名']; //フォーム作成時に設定した項目名
84
88
 
85
- var answer4 = e.namedValues['商品URL']; //フォーム作成時に設定した項目名
86
-
87
- var answer5 = e.namedValues['数']; //フォーム作成時に設定した項目名
89
+ var answer4 = e.namedValues['数']; //フォーム作成時に設定した項目名
90
+
91
+ var answer5 = e.namedValues['単価(税込み)']; //フォーム作成時に設定した項目名
92
+
93
+ var answer6 = e.namedValues['購入理由']; //フォーム作成時に設定した項目名
94
+
95
+ var answer7 = e.namedValues['購入先(URL等)']; //フォーム作成時に設定した項目名
96
+
97
+ var answer8 = e.namedValues['優先度']; //フォーム作成時に設定した項目名
98
+
99
+
88
100
 
89
101
 
90
102
 
@@ -92,6 +104,8 @@
92
104
 
93
105
  var body = 'htmlメールが表示できませんでした'; //本文(表示不可時)
94
106
 
107
+
108
+
95
109
  var timeStamp=e.namedValues["タイムスタンプ"];
96
110
 
97
111
 
@@ -104,39 +118,53 @@
104
118
 
105
119
 
106
120
 
107
- html += "申請者:" + answer1 + "<br>";
121
+ html += "購入 氏名:" + answer1 + "<br>";
108
122
 
109
123
  html += "商品名:" + answer3 + "<br>";
110
124
 
111
- html += "数:" + answer5 + "<br>";
125
+ html += "数:" + answer4 + "<br>";
126
+
127
+ html += "単価(税込み):" + answer5 + "<br>";
128
+
129
+ html += "購入理由:" + answer6 + "<br>";
130
+
131
+ html += "購入先(URL等):" + answer7 + "<br>";
132
+
133
+ html += "優先度:" + answer8 + "<br>";
134
+
135
+
112
136
 
113
137
  html += "タイムスタンプ:" + timeStamp + "<br>";
114
138
 
115
- html += "商品URL:" + answer4 + "<br><br>";
139
+
116
-
117
-
140
+
141
+
118
142
 
119
143
  html += "承認しますか?<br><br>";
120
144
 
121
145
 
122
146
 
147
+
148
+
149
+ /* 承認・否認 */
150
+
123
- html += '<a href="https://*********/exec?p=ok&t=timeStamp">承認</a><br>';
151
+ html += '<a href="https://******/exec?p=ok&t='+(timeStamp - 0)+'">承認</a><br>';
124
-
152
+
125
- html += '<a href="https://*********/exec?p=ng&t=timeStamp">否認</a><br>';
153
+ html += '<a href="https://******/exec?p=ng&t='+(timeStamp - 0)+'">否認</a><br>';
126
-
127
-
128
-
129
-
154
+
155
+
156
+
157
+
130
158
 
131
159
  /* メールを送信 */
132
160
 
133
161
  if
134
162
 
135
- (answer2 == '部門') {
163
+ (answer2 == '部門') {
136
164
 
137
165
  GmailApp.sendEmail(
138
166
 
139
- 'メールアドレス',
167
+ 'メールアドレス',
140
168
 
141
169
  subject,
142
170
 
@@ -156,11 +184,11 @@
156
184
 
157
185
  else if
158
186
 
159
- (answer2 == '部門') {
187
+ (answer2 == '部門') {
160
188
 
161
189
  GmailApp.sendEmail(
162
190
 
163
- 'メールアドレス',
191
+ 'メールアドレス',
164
192
 
165
193
  subject,
166
194
 
@@ -184,7 +212,7 @@
184
212
 
185
213
  GmailApp.sendEmail(
186
214
 
187
- 'メールアドレス',
215
+ 'メールアドレス',
188
216
 
189
217
  subject,
190
218
 
@@ -254,43 +282,99 @@
254
282
 
255
283
  </html>
256
284
 
257
-
258
-
259
285
  ------------------
260
286
 
287
+ ●Error.html
288
+
289
+ <!DOCTYPE html>
290
+
291
+ <html>
292
+
293
+ <head>
294
+
295
+ <base target="_top">
296
+
297
+ </head>
298
+
299
+ <body>
300
+
301
+ URLが正しくありません。ここはエラーページです<br><br>
302
+
303
+
304
+
305
+ </body>
306
+
307
+ </html>
308
+
309
+
310
+
311
+ ------------------
312
+
261
313
  ●doGet.gs
262
314
 
315
+
316
+
263
317
  function doGet(e){
264
318
 
265
319
  var page=e.parameter["p"];
266
320
 
267
321
  var timeStamp=e.parameter["t"];
268
322
 
269
-
270
-
323
+
324
+
271
- if(page == "ok" && timeStamp == "timeStamp"){
325
+ if(page == "ok" && timeStamp){
326
+
272
-
327
+ setter(timeStamp, "○");
273
-
274
-
328
+
275
- return HtmlService.createHtmlOutputFromFile('ok');
329
+ return HtmlService.createHtmlOutputFromFile('ok');
330
+
331
+ }
332
+
333
+ else if(page == "ng" && timeStamp){
334
+
335
+ setter(timeStamp, "×");
336
+
337
+ return HtmlService.createHtmlOutputFromFile('ng');
338
+
339
+ }
340
+
341
+
342
+
343
+ else{
344
+
345
+ return HtmlService.createHtmlOutputFromFile('Error');
346
+
347
+ }
276
348
 
277
349
  }
278
350
 
351
+
352
+
353
+ function setter(timestamp, str) {
354
+
279
- else if(page == "ng" && timeStamp == "timeStamp"){
355
+ var sh = SpreadsheetApp.openById("スプレッドシートID").getSheetByName("フォームの回答");
280
-
356
+
281
- return HtmlService.createHtmlOutputFromFile('ng');
357
+ var vals = sh.getDataRange().getValues();
358
+
359
+ var row = -1;
360
+
361
+ for(var i = 0; i < vals.length; i++) {
362
+
363
+ if((vals[i][0] - 0) == timestamp) {
364
+
365
+ row = i + 1;
366
+
367
+ }
282
368
 
283
369
  }
284
370
 
285
-
286
-
287
- else{
371
+ if(row != -1) {
288
-
372
+
289
- return HtmlService.createHtmlOutputFromFile('Error');
373
+ sh.getRange(row, 14, 1, 1).setValue(str);
290
-
291
-
292
-
374
+
293
- }
375
+ }
376
+
377
+
294
378
 
295
379
 
296
380
 

2

承認結果の入力列を変更したいので内容を更新しました。

2018/10/03 02:50

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,9 @@
18
18
 
19
19
  ---
20
20
 
21
+ 【更新】
22
+
21
- 【更新】回答でご指摘頂いた内容について本文にも追記します。
23
+ 回答でご指摘頂いた内容について本文にも追記します。
22
24
 
23
25
  ・書き込むスプレッドシートはidで特定して、その中のシート『フォームの回答』に書き込みを行う。
24
26
 
@@ -38,6 +40,14 @@
38
40
 
39
41
 
40
42
 
43
+ 【再更新】
44
+
45
+ フォームの入力内容を追加する必要が出たので、
46
+
47
+ 『承認』『否認』の結果入力をJ列ではなく、N列(14列目)に変更したいです。
48
+
49
+ N列に"〇"、"×"を入力したい。
50
+
41
51
 
42
52
 
43
53
 

1

回答で指摘頂いた内容を追記しました。

2018/09/26 02:20

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -16,6 +16,28 @@
16
16
 
17
17
 
18
18
 
19
+ ---
20
+
21
+ 【更新】回答でご指摘頂いた内容について本文にも追記します。
22
+
23
+ ・書き込むスプレッドシートはidで特定して、その中のシート『フォームの回答』に書き込みを行う。
24
+
25
+ ・『フォームの回答』シートには、フォームから申請された情報が入力されている。
26
+
27
+  タイトル行(A1~I1)には以下のタイトルが記入済み(タイムスタンプ、メールアドレス、氏名、部門、
28
+
29
+  機材種別、購入希望日、商品名、商品URL、個数)。
30
+
31
+  2行目以下はフォームからの申請内容が入力されている。
32
+
33
+
34
+
35
+ ・『承認』の場合はJ列に"〇"を、『否認』の場合はJ列に"×"を入力したい。
36
+
37
+  (タイムスタンプが一致する行に対して。)
38
+
39
+
40
+
19
41
 
20
42
 
21
43