質問編集履歴
3
修正後(現状)
test
CHANGED
File without changes
|
test
CHANGED
@@ -239,3 +239,257 @@
|
|
239
239
|
|
240
240
|
|
241
241
|
```
|
242
|
+
|
243
|
+
|
244
|
+
|
245
|
+
## 修正後(現状)
|
246
|
+
|
247
|
+
|
248
|
+
|
249
|
+
```GAS
|
250
|
+
|
251
|
+
//sendMailGoogleForm04
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
function sendMailGoogleForm() {
|
258
|
+
|
259
|
+
Logger.log('sendMailGoogleForm() debug start');
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
//------------------------------------------------------------
|
264
|
+
|
265
|
+
// 設定エリアここから
|
266
|
+
|
267
|
+
//------------------------------------------------------------
|
268
|
+
|
269
|
+
|
270
|
+
|
271
|
+
// 件名、本文、フッター
|
272
|
+
|
273
|
+
var subject = "[件名]";
|
274
|
+
|
275
|
+
var body
|
276
|
+
|
277
|
+
= "本文\n\n"
|
278
|
+
|
279
|
+
+ "------------------------------------------------------------\n";
|
280
|
+
|
281
|
+
var footer
|
282
|
+
|
283
|
+
= "------------------------------------------------------------\n\n"
|
284
|
+
|
285
|
+
+ "フッター";
|
286
|
+
|
287
|
+
|
288
|
+
|
289
|
+
// 入力カラム名の指定
|
290
|
+
|
291
|
+
var NAME_COL_NAME = '名前';
|
292
|
+
|
293
|
+
var MAIL_COL_NAME = 'メールアドレス';
|
294
|
+
|
295
|
+
var SUBJ_COL_NAME = '件名';
|
296
|
+
|
297
|
+
//メール除外カラム
|
298
|
+
|
299
|
+
var EXCLUDE_COLS = ['ステータス','対応日時'];
|
300
|
+
|
301
|
+
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
// メール送信先
|
306
|
+
|
307
|
+
var admin = "メールアドレスm"; // 管理者(必須)
|
308
|
+
|
309
|
+
|
310
|
+
|
311
|
+
// スプレッドシートID
|
312
|
+
|
313
|
+
// URLが「https://docs.google.com/spreadsheets/d/abc1234567/edit#gid=0」だったら「abc1234567」がID
|
314
|
+
|
315
|
+
var spread_sheet_id = 'ID';
|
316
|
+
|
317
|
+
|
318
|
+
|
319
|
+
|
320
|
+
|
321
|
+
|
322
|
+
|
323
|
+
//------------------------------------------------------------
|
324
|
+
|
325
|
+
// 設定エリアここまで
|
326
|
+
|
327
|
+
//------------------------------------------------------------
|
328
|
+
|
329
|
+
|
330
|
+
|
331
|
+
try{
|
332
|
+
|
333
|
+
|
334
|
+
|
335
|
+
// スプレッドシートの操作
|
336
|
+
|
337
|
+
|
338
|
+
|
339
|
+
var ss = SpreadsheetApp.openById(spread_sheet_id);
|
340
|
+
|
341
|
+
var sh = ss.getSheetByName('form_ans');//シート名
|
342
|
+
|
343
|
+
console.log("ファイル名",sh.getName());
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
var rows = sh.getLastRow();
|
348
|
+
|
349
|
+
console.log("rows:",rows);
|
350
|
+
|
351
|
+
|
352
|
+
|
353
|
+
var cols = sh.getLastColumn();
|
354
|
+
|
355
|
+
console.log("cols:",cols);
|
356
|
+
|
357
|
+
|
358
|
+
|
359
|
+
var rg = sh.getDataRange();
|
360
|
+
|
361
|
+
Logger.log("rows="+rows+"cols="+cols);
|
362
|
+
|
363
|
+
|
364
|
+
|
365
|
+
//メール件名・本文作成と送信先メールアドレス取得
|
366
|
+
|
367
|
+
var to = ""; //To:(入力者のアドレスが自動で入ります)
|
368
|
+
|
369
|
+
for(var j = 1;j<=cols;j++){
|
370
|
+
|
371
|
+
var col_name = rg.getCell(1,j).getValue(); //カラム名
|
372
|
+
|
373
|
+
var col_value = rg.getCell(rows,j).getValue(); //入力値
|
374
|
+
|
375
|
+
//メール用変換
|
376
|
+
|
377
|
+
if(col_name === NAME_COL_NAME){
|
378
|
+
|
379
|
+
body = col_value + "様\n\n"+body;
|
380
|
+
|
381
|
+
}
|
382
|
+
|
383
|
+
if(col_name === MAIL_COL_NAME){
|
384
|
+
|
385
|
+
to = col_value;
|
386
|
+
|
387
|
+
}
|
388
|
+
|
389
|
+
if(col_name === SUBJ_COL_NAME){
|
390
|
+
|
391
|
+
subject += col_value;
|
392
|
+
|
393
|
+
}
|
394
|
+
|
395
|
+
//日付フォーマットの変換
|
396
|
+
|
397
|
+
//他にも変換したいカラムがある場合はこのif文をコピーしてカラム名・日付フォーマットを変更する
|
398
|
+
|
399
|
+
if(col_name === 'タイムスタンプ'){
|
400
|
+
|
401
|
+
col_value = Utilities.formatDate(col_value,"JST","yyyy-MM-dd HH:mm:ss");
|
402
|
+
|
403
|
+
}
|
404
|
+
|
405
|
+
//メール送信除外カラム
|
406
|
+
|
407
|
+
if(EXCLUDE_COLS.length > 0){
|
408
|
+
|
409
|
+
is_exclude = false;
|
410
|
+
|
411
|
+
for(var k = 0;k<EXCLUDE_COLS.length;k++){
|
412
|
+
|
413
|
+
if(col_name === EXCLUDE_COLS[k]){
|
414
|
+
|
415
|
+
is_exclude = true;
|
416
|
+
|
417
|
+
break;
|
418
|
+
|
419
|
+
}
|
420
|
+
|
421
|
+
}
|
422
|
+
|
423
|
+
if(is_exclude){
|
424
|
+
|
425
|
+
//除外カラムなのでスキップ
|
426
|
+
|
427
|
+
continue;
|
428
|
+
|
429
|
+
}
|
430
|
+
|
431
|
+
}
|
432
|
+
|
433
|
+
//メール本文に追加
|
434
|
+
|
435
|
+
body += "["+col_name+"]\n";
|
436
|
+
|
437
|
+
body += col_value + "\n\n";
|
438
|
+
|
439
|
+
}
|
440
|
+
|
441
|
+
|
442
|
+
|
443
|
+
body += footer;
|
444
|
+
|
445
|
+
/*ユーザー宛送信*/
|
446
|
+
|
447
|
+
//送信オプション
|
448
|
+
|
449
|
+
var options = {};
|
450
|
+
|
451
|
+
if(admin)options.replyTo = admin;
|
452
|
+
|
453
|
+
//メール送信
|
454
|
+
|
455
|
+
if(to){
|
456
|
+
|
457
|
+
MailApp.sendEmail(to,subject,body,options);
|
458
|
+
|
459
|
+
}else{
|
460
|
+
|
461
|
+
MailApp.sendEmail(admin,"[失敗]Googleフォームにメールアドレスが指定されていません",body);
|
462
|
+
|
463
|
+
}
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
/*管理者宛送信*/
|
468
|
+
|
469
|
+
//送信先オプション
|
470
|
+
|
471
|
+
var options = {};
|
472
|
+
|
473
|
+
if(to)options.replyTo = to;
|
474
|
+
|
475
|
+
//連続で送るとエラーになるので1秒スリープ
|
476
|
+
|
477
|
+
Utilities.sleep(1000);
|
478
|
+
|
479
|
+
MailApp.sendEmail(admin,subject,body,options);
|
480
|
+
|
481
|
+
|
482
|
+
|
483
|
+
|
484
|
+
|
485
|
+
}catch(e){
|
486
|
+
|
487
|
+
MailApp.sendEmail(admin,"[失敗]Googleフォームからメール送信中にエラーが発生",e.message);
|
488
|
+
|
489
|
+
}
|
490
|
+
|
491
|
+
}
|
492
|
+
|
493
|
+
|
494
|
+
|
495
|
+
```
|
2
追記をした
test
CHANGED
File without changes
|
test
CHANGED
@@ -68,7 +68,13 @@
|
|
68
68
|
|
69
69
|
|
70
70
|
|
71
|
-
また、よくわからなかったのが、シート名は回答フォームからスプレッドシートを開いた時のシートのタイトルだと思ったのですが、もしかして違うのでしょうか、
|
71
|
+
また、よくわからなかったのが、シート名は回答フォームからスプレッドシートを開いた時のシートのタイトルだと思ったのですが、もしかして違うのでしょうか、この質問をみたのですが、
|
72
|
+
|
73
|
+
[https://teratail.com/questions/189952](https://teratail.com/questions/189952)
|
74
|
+
|
75
|
+
sheetNameが何を指すのかがわからず、、
|
76
|
+
|
77
|
+
|
72
78
|
|
73
79
|
色々理解しきれていませんが、アドバイスを頂けると助かります。
|
74
80
|
|
1
追記やってみたこと
test
CHANGED
File without changes
|
test
CHANGED
@@ -44,16 +44,38 @@
|
|
44
44
|
|
45
45
|
|
46
46
|
|
47
|
+
## やってみたこと
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
もしかして、
|
52
|
+
|
53
|
+
var sheet = SpreadsheetApp.getActiveSheet();
|
54
|
+
|
55
|
+
と
|
56
|
+
|
57
|
+
var rows = sheet.getLastRow();
|
58
|
+
|
59
|
+
の間にgetSheetName("フォームのタイトル(日本語)")の処理が必要だったのかもしれないと思いいれて見ましたが、
|
60
|
+
|
61
|
+
別のエラー
|
62
|
+
|
63
|
+
"パラメータ(String)が SpreadsheetApp.Sheet.getSheetName のメソッドのシグネ
|
64
|
+
|
65
|
+
チャと一致しません。"
|
66
|
+
|
67
|
+
と出ました、、
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
また、よくわからなかったのが、シート名は回答フォームからスプレッドシートを開いた時のシートのタイトルだと思ったのですが、もしかして違うのでしょうか、
|
72
|
+
|
73
|
+
色々理解しきれていませんが、アドバイスを頂けると助かります。
|
74
|
+
|
75
|
+
|
76
|
+
|
47
77
|
---
|
48
78
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
79
|
## ソースコード全体
|
58
80
|
|
59
81
|
```Google Apps Script
|