前提として
下記にブログに掲載している方法で、稟議申請を作成し、下記まではエラーなく完了できています。
①Googleフォームで申請を送信
②送信後、承認者にメールを送信、13列目に「確認中」と表示(sendMessage)
③承認者が承認リンクを踏んだら、13列目が「承認」に変わる&承認完了のメッセージを申請者に送信(doGet)
・参照したブログ https://tonari-it.com/gas-workflow-form-gmail-spreadsheet/
作成したコード
sendMessage
1function sendMessage(e) { 2 const [timeStamp , email , department , name , title , content , expenses , order, price , payment , date, memo ] = e.values; 3 const row = e.range.getRow(); 4 const sheet = e.range.getSheet(); 5 sheet.getRange(row, 13).setValue('確認中'); 6 7 const recipient = '********@*******.jp'; //送信先メールアドレス 8 const subject = '稟議申請のお知らせ'; 9 let body = ''; 10 body += '稟議申請がありました。\n\n'; 11 body += `・申請者名: ${name}\n`; 12 body += `・案件名: ${title} \n`; 13 body += `・内容: ${content} \n`; 14 body += `・精算方法: ${expenses} \n`; 15 body += `・発注書・見積書: ${order} \n`; 16 body += `・金額(税抜): ${price} \n`; 17 body += `・支払方法: ${payment} \n`; 18 body += `・支払日: ${date} \n`; 19 body += `・備考: ${memo} \n`; 20 body += '承認する場合は以下URLをクリックしてください\n'; 21 body += 'https://script.google.com/*************************Up4/exec'; //公開したウェブアプリケーションのURL 22 body += `?row=${row}`; 23 24 GmailApp.sendEmail(recipient, subject, body); 25}
doGet
1function doGet(e) { 2 const row = e.parameter.row; 3 const sheet = SpreadsheetApp.getActiveSheet(); 4 const values = sheet.getRange(row, 1, 1, 13).getValues()[0]; 5 const [timeStamp , email , department , name , title , content , expenses , order, price , payment , date, memo ] = values; 6 7 sheet.getRange(row, 13).setValue('承認'); 8 9 const subject = '稟議申請承認のお知らせ'; 10 let body = ''; 11 body += '以下の稟議申請が承認されました。\n\n'; 12 body += `・申請者名: ${name}\n`; 13 body += `・案件名: ${title} \n`; 14 body += `・内容: ${content} \n`; 15 body += `・精算方法: ${expenses} \n`; 16 body += `・発注書・見積書: ${order} \n`; 17 body += `・金額(税抜): ${price} \n`; 18 body += `・支払方法: ${payment} \n`; 19 body += `・支払日: ${date} \n`; 20 body += `・備考: ${memo} \n`; 21 GmailApp.sendEmail(email, subject, body); //申請者にメールを送る 22 23 let html = ''; 24 html += '<h1>稟議申請承認のお知らせ</h1>'; 25 html += '<p>あなたは以下の稟議申請を承認しました</p>'; 26 html += '<ul>'; 27 html += `<li>申請者名: ${name}</li>`; 28 html += `<li>案件名: ${title}</li>`; 29 html += `<li>内容: ${content}</li>`; 30 html += `<li>精算方法: ${expenses}</li>`; 31 html += `<li>発注書・見積書: ${order}</li>`; 32 html += `<li>金額(税抜): ${price}</li>`; 33 html += `<li>支払方法: ${payment}</li>`; 34 html += `<li>支払日: ${date}</li>`; 35 html += `<li>備考: ${memo}</li>`; 36 html += '</ul>'; 37 return HtmlService.createHtmlOutput(html); 38 }
やりたいこと
申請した件に、自動で稟議番号を採番し、採番した番号を承認完了のメッセージに付け加えて送りたい
ARRAYFORMULA 関数で予めスプレッドシートに番号を振っておく方法などいろいろ試しましたが、シートに振った番号がundefinedとなってしまったりして、うまくいきませんでした。参考書で調べても、自動採番する方法なら出てきますが、それをメールに反映させる方法と上記のコードで書いた場合の追加方法がわかりませんでしたので、教えていただけますと助かります!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/21 03:19
2022/02/21 04:22
2022/02/21 04:48 編集