質問編集履歴

2

書式の改善

2023/10/25 11:40

投稿

kanakoji
kanakoji

スコア2

test CHANGED
File without changes
test CHANGED
@@ -9,6 +9,91 @@
9
9
 
10
10
  ### 該当のソースコード
11
11
  ```ここに言語を入力
12
+ function sendMessage(e) {
13
+ /*
14
+ <summary>
15
+  Formで登録された内容をeパラメタとして受け取り、SS上から必要データを取り出して、
16
+ 承認者向けにメールを送付する。メールの内容として、承認・否認の選択肢を付与する。
17
+ SSには登録されたデータのStatusを”申請中”として登録する
18
+ */
19
+
20
+ //eパラメタ等から対象シートのRowを取得、ついでにSSに申請中と登録
21
+ var row = e.range.getRow();
22
+ var sheet = SpreadsheetApp.openById("1hk_hbd1HvkvJZ4EX_Gi7HK0Lp9BNKcnKt8CLnimXrDo").getSheetByName("ボランティア申込"); //XXXXをSSのIDへ変更
23
+ sheet.getRange(row,5).setValue("申請中");
24
+
25
+ // メールに貼り付けるBodyをgenerateBody関数から作成
26
+ var bodies = generateBody(e.values);
27
+
28
+ // urlはこのGASをウェブアプリで公開した、アドレス+パラメータとして、rowとanswerをつける
29
+ var url = "https://script.google.com/macros/s/AKfycby_yz-GEv-Rg3plypCBh95IH3ILkIrHD_tFlPM18i5T0MY0tZCQL2F19cC85VzqF1G5Rw/exec"+ "?row=" + row +"&answer="; //https:...以下ををスクリプトをウェブアプリケーションとして公開した際に表示されるURLへ変更
30
+
31
+
32
+
33
+ var recipient = 'XXXXXXX@gmail.com';
34
+ var subject = "ボランティア申込みのお知らせ";
35
+
36
+ var body = "";
37
+ body += 'ボランティアの申込みがありました\n\n';
38
+ body += bodies.plane;
39
+ body += "承認する場合は以下をクリック";
40
+ body += url + "ok";
41
+ body += "承認しない場合は以下をクリック";
42
+ body += url + "ng";
43
+
44
+ var html ="";
45
+ html += '<h1>ボランティアの申込みがありました</h1>';
46
+ html += '<p>以下の申込みがありました</p>';
47
+ html += bodies.plane;
48
+ html += "<p>承認する場合は、<a href="+ url + "ok>【承認する】</a>をクリックしてください</p>"
49
+ html += "<p>承認しない場合は、<a href="+ url + "ng>【否認する】</a>をクリックしてください</p>"
50
+
51
+ GmailApp.sendEmail(recipient, subject, body, {htmlBody:html});
52
+
53
+ }
54
+
55
+
56
+ function doGet(e) {
57
+ /*
58
+ <summary>
59
+ 承認者がメールで選択したのち、選択した結果をSSのStatus項目に反映する。
60
+ また、申請者には結果をメールする。そして、承認者には選択した結果をブラウザ画面で表示する
61
+ */
62
+ // エディタでdoGetを実行したときの承認メール送信確認用
63
+ // e = {};
64
+ // e.parameter = {};
65
+ // e.parameter.row = 10;//有効なメアドがある行
66
+ // e.parameter.answer = 'ok';
67
+ const row = e.parameter.row;
68
+ const sheet = SpreadsheetApp.openById('1hk_hbd1HvkvJZ4EX_Gi7HK0Lp9BNKcnKt8CLnimXrDo').getSheetByName('ボランティア申込'); //XXXXをSSのIDで書換え
69
+ const values = sheet.getRange(row, 1, 1, 8).getValues()[0];
70
+ Logger.log(values);
71
+ const bodies = generateBody(values);
72
+ const answers = e.parameter.answer;
73
+ const result = {
74
+ ok: '承認',
75
+ ng: '否認'
76
+ };
77
+ const recipient = values[3];
78
+ if (answers) {
79
+ sheet.getRange(row, 5).setValue(result[answers]);
80
+ const subject = 'ボランティア申込' + result[answers] + 'のお知らせ';
81
+ let body = '';
82
+ body += '以下の内容でボランティアの申込が' + result[answers] + 'されました。\n\n';
83
+ body += bodies.html;
84
+ let html = '';
85
+ html += '<h1>ボランティア申込' + result[answers] + 'のお知らせ</h1>';
86
+ html += '<p>以下の内容でボランティアの申込が' + result[answers] + 'されました。</p>';
87
+ html += bodies.html;
88
+ GmailApp.sendEmail(recipient, subject, body, { htmlBody: html });
89
+ html = '';// 元のコードではhtmlをvarで再宣言していたが、letで宣言したので再利用に変更
90
+ html += '<h1>ボランティア申込' + result[answers] + '</h1>';
91
+ html += '<p>あなたは以下のボランティア申込を' + result[answers] + 'しました</p>';
92
+ html += bodies.html;
93
+ return HtmlService.createHtmlOutput(html);
94
+ };
95
+ }
96
+
12
97
  function generateBody(values){
13
98
 
14
99
  var name = values[1];
@@ -17,6 +102,8 @@
17
102
  var syozoku = values[6];
18
103
  var bora = values[7];
19
104
  var bikou = values[8];
105
+
106
+
20
107
 
21
108
  var plane = "";
22
109
  plane += '<ul>';
@@ -29,6 +116,8 @@
29
116
 
30
117
  plane += '</ul>';
31
118
 
119
+
120
+
32
121
  var html = '';
33
122
  html += '<ul>';
34
123
  html += '<li>児童名: ' + name + '</li>';
@@ -43,10 +132,11 @@
43
132
  return {plane:plane, html:html};
44
133
  }
45
134
 
135
+
46
136
  ```
47
137
 
48
138
  ### 試したこと
49
-
139
+ function generateBody(values){
50
140
  var name=values[1]←この数字の部分を色々と変えてみましたが、変化がありません。
51
141
 
52
142
  ### 補足情報(FW/ツールのバージョンなど)

1

ソースコードの載せ方の変更

2023/10/25 11:34

投稿

kanakoji
kanakoji

スコア2

test CHANGED
File without changes
test CHANGED
@@ -8,6 +8,7 @@
8
8
  フォームで申請を受け、担当者に「~申請がありました」という内容のメールが届くのですが、その内容の部分で指定したい内容が表示されず、悩んでいます。
9
9
 
10
10
  ### 該当のソースコード
11
+ ```ここに言語を入力
11
12
  function generateBody(values){
12
13
 
13
14
  var name = values[1];
@@ -42,6 +43,7 @@
42
43
  return {plane:plane, html:html};
43
44
  }
44
45
 
46
+ ```
45
47
 
46
48
  ### 試したこと
47
49