質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

解決済

1回答

747閲覧

自己解決済:Googleフォーム回答別送信先変更について

退会済みユーザー

退会済みユーザー

総合スコア0

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

0クリップ

投稿2020/03/25 07:50

編集2020/03/25 08:28

こちら、自己解決しましたので取り下げさせていただきます。
お目汚し大変失礼いたしました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/03/25 08:33

質問を削除しないでください。 また、自己解決したのであれば、自己解決した回答をつけてクローズしてください。
kei344

2020/03/25 08:34

【質問をした後に自己解決してしまった < ヘルプ|teratail(テラテイル)】 https://teratail.com/help#resolve-myself > 自分で投稿した質問にも回答する事が可能です。質問文の内容を編集したりせず、回答を付けベストアンサーをクリックし解決済みにしてください。 > また後から読む人のためにも、具体的な解決手順を記載してください。
guest

回答1

0

ベストアンサー

javascript

1const generateMessageBody = (val) => { 2 return { 3 plain: fillin(val).map(e => `${e}`).join("\n"), 4 html: `<ul><li>${fillin(val).map(e => `${e}`).join("</li><li>")}</li></li>` 5 } 6}; 7const fillin = (val) => { 8 const items = ["お名前: ","出張先: ","出張目的: ","出張開始日: ","出張終了日: ","プライベート経路: ","回数券使用枚数: ","回数券使用枚数: ","承認する上長: "]; 9 return items.map((e,i)=>`${e}${val[i]}`); 10} 11const getMailAddr = (name) => { 12 const list = { 13 "質問者":"root@example.com", 14 "管理者":"admin@example.com", 15 } 16 return list[name] || "root@example.com" 17} 18const sendMessage = (e) => { 19 e.range.getSheet().getRange(e.range.getRow(), 11).setValue('確認中'); 20 const bodies = generateBodies(e.values); 21 const url = `https://script.google.com/~~~~~/exec?row=${e.range.getRow()}&answer=`; //公開したウェブアプリケーションのURL 22 const to = getMailAddr(e.values[8]); 23 const subject = "出張承認申請のお知らせ"; 24 const body = `以下の出張承認申請がありました。 25${bodies.plain} 26承認する場合は、以下URLをクリックしてください 27${url}ok 28否認する場合は、以下URLをクリックしてください 29${url}ok`; 30 const html = `<h1>出張承認申請のお知らせ</h1> 31<p>以下の出張承認申請がありました。</p> 32${bodies.html} 33<p>承認する場合は、<a href="${url}ok">[承認]</a>をクリックしてください</p> 34<p>否認する場合は、<a href="${url}ng">[否認]</a>をクリックしてください</p>`; 35 GmailApp.sendEmail(to, subject, body, { htmlBody: html }); 36} 37const doGet = (e) => { 38 const sheetId = ""; 39 const sheetName = "回答"; 40 const result = { 41 ok: '承認', 42 ng: '否認' 43 }; 44 const row = e.parameter.row; 45 const approval = result[e.parameter.answer]; 46 if(!approval) return; 47 const sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName); 48 sheet.getRange(row, 11).setValue(approval); 49 50 const values = sheet.getRange(row, 1, 1, 11).getValues()[0]; 51 const message = generateMessageBody(values); 52 const to = getMailAddr(values[8]);; 53 const subject = `出張承認申請${approval}のお知らせ`; 54 const header = `以下の出張承認申請が${approval}されました。`; 55 const body = `${header} 56 57${message.plain}`; 58 const html = `<h1>${subject}</h1> 59<p>${header}</p> 60${bodies.html}`; 61 GmailApp.sendEmail(recipient, subject, body, { htmlBody: html }); 62 return HtmlService.createHtmlOutput(`${header}<p>あなたは以下の出張承認申請を${approval}しました</p>${bodies.html}`); 63}

投稿2020/03/25 10:17

編集2020/03/25 13:53
papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Y.H.

2020/03/25 12:47 編集

すみません勘違いしてました。以下取り下げます。 <s>ここは回答を書くところです。 しかも解決済みになっていて、かつ、評価が低い質問なので殆どの人の目に触れないと思います。 新たに質問したほうがいいと思いますよ。</s>
fiveHundred

2020/03/25 12:39

> Y.H.さん 質問者本人が投稿していると本当に勘違いしていたのか、わざと勘違いしているように見せかけたネタコメントなのか、どちらですか?
Y.H.

2020/03/25 12:48 編集

すみません、真面目に勘違いしてました。編集前のを載っけてくれてたんですね。
papinianus

2020/03/25 14:25

解決済みとのことなので追求しませんが、スプレッドシート側のformの送信時トリガーはどうも複数回発火するようです。teratailでもいくつか質問があります。このところ収まっているのでv8になってから沈静化しているのかもしれません。 いずれにしても、Form のスクリプトとして書くのが適当だと思います。 ただ、回答としてそういうコードをかくには、質問項目のタイトルや回答タイプが分からないと作りにくいため(シートからすると上から順になっているのかもしれませんが、単に面倒だという側面もありますため)情報が足りていません。 gasのやりかたに合っていないコードを紹介しているサイトだという観点を持つことをおすすめします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問