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

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

ただいまの
回答率

88.91%

Gフォームの回答別に、担当者へメール送信するためのGASコード

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 161

tano_

score 0

前提・実現したいこと

申請フォームをGoogleフォームで作成
フォームの回答をスプレッドシートに蓄積
スプレッドシートのGASにて下記動作を行いたくコードを書きました。

フォーム送信時に、作成した選択肢の回答ごとに、別々の担当者へフォーム送信があった旨の連絡と、承認依頼をしたい。
固定の担当者へは動作確認できたが、回答ごとに異なる担当者へメール送信するコードを書いているつもりがエラーになるためご意見聞けたら嬉しいです。

初心者ですがよろしくお願いいたします。

発生している問題・エラーメッセージ

toのアドレスには送信されるが、回答ごとに設定したアドレスに送信されない。

該当のソースコード

function sendMessage(e) {

  var sheet = SpreadsheetApp.getActiveSheet();
  var row = sheet.getLastRow();
  sheet.getRange(row, 0).setValue('確認中'); 
  let url = '@@@@@@'; //公開したウェブアプリケーションのURL
  url += `?row={row}&answer=`;

  const subject = '申請書が提出されました';

  var to ="aaa@aaa.com";
  var title = SpreadsheetApp.getActiveSheet();
  var ans = SpreadsheetApp.getActiveSheet();
  if (title==="質問") { //Googleフォームでの選択式質問
      if (ans==="回答1") {
        to = "ddd@ddd.com";
      } else if (ans==="回答2") {
        to = "bbb@bbb.com";
      } else if (ans==="回答3") {
        to = "cccc@cccc.com";
      }
    }

  // 項目を取得
  var name = sheet.getRange(row, 0).getValue();

  let body = '';

  body += "" + name + " さんから、\n";
  body += '申請書が提出されました。\n';
  body += '\n';
  body += '【 承認 】する場合は、以下URLをクリックしてください\n';
  body += url + 'ok\n';
  body += '\n';

  const options = {name: '申請'};

  GmailApp.sendEmail(to, subject, body, );

}


function doGet(e) {
  const sheet = SpreadsheetApp.getActiveSheet();

  var row = sheet.getLastRow();
  sheet.getRange(row, 0).setValue('承認');

  const subject = '申請が承認されました。';

  var name = sheet.getRange(row, 0).getValue();

  let body = '';

  body += 'あなたの申請が 【承認】 されました。\n';
  body += '\n';

  GmailApp.sendEmail(name, subject, body); //申請者にメールを送る

  let html = '';
  html += '<h1>承認</h1>';
  html += '承認しました。</p>';
  html += '<ul>';
  html += '</ul>';
  return HtmlService.createHtmlOutput(html);
}

試したこと

ver to = を丸ごと消すと送り先が無いというメッセージが出るので、指示するコードが足りないということは分かるのですが…
あとは、独学でネット上で公開されているものを色々組み合わせてみましたが、うんともすんともいかず。
申し訳ありません。

よろしくお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

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

  • ただいまの回答率 88.91%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる