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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

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

Google ドライブ

Google ドライブは、Google社が提供するオンラインストレージサービス。オンラインストレージ上に、画像や動画、テキスト、Word/PDFのファイルなどさまざまなファイル保存することができます。また、他のユーザーと共有することも可能です。

Google Apps Script

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

メール

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

Q&A

0回答

692閲覧

Googleフォームの回答内容に応じて、メールを送信したいです

takehisa28

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

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

Google ドライブ

Google ドライブは、Google社が提供するオンラインストレージサービス。オンラインストレージ上に、画像や動画、テキスト、Word/PDFのファイルなどさまざまなファイル保存することができます。また、他のユーザーと共有することも可能です。

Google Apps Script

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

メール

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

0グッド

0クリップ

投稿2021/03/02 14:14

前提・実現したいこと

GASを使って、Googleフォームのコンテナバインドスクリプトを書いています。
社内の業務の依頼引受フォームを作っています。
添付の図のように、一つ目の質問が依頼を引き受ける人の名前、
二つ目が依頼を引き受ける人のメールアドレス、
三つ目以降は依頼内容としています。

「フォームの送信」をトリガーとして、
依頼を引き受ける人が、「依頼を受ける」を選択した場合のみ、その依頼について、
スプレッドシートの「依頼」という名前のシートの、
E列に入力されているGoogleドライブの共有URLを、
二つ目のメールアドレスに対して、メールの本文として送りたいと考えています。
なお、スプレッドシートは添付ファイルのように入力されています。
(つまり、フォームの依頼の表示順と、同じ順番で上から入力されている)

イメージ説明

イメージ説明

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

メールを正常に送ることができません。
ご助言いただければ幸いです。
よろしくお願いいたします。

該当のソースコード

GAS

1function sendEmail(e){ 2 3 FormApp.getActiveForm(); 4 var itemResponses = e.response.getItemResponses(); 5 var result = []; 6 for (var i = 0; i < itemResponses.length; i++) { 7 var itemResponse = itemResponses[i]; 8 var question = itemResponse.getItem().getTitle(); 9 var answer = itemResponse.getResponse(); 10 result.push([question, answer]); 11 } 12 13 var url = "https://docs.google.com/〇〇〇〇〇〇"; 14 var spreadSheet = SpreadsheetApp.openByUrl(url); 15 var sheet = spreadSheet.getSheetByName("依頼") 16 var values = sheet.getDataRange().getValues(); 17 18 for(var j = 0 ; j < result.length ; j++){ 19 if(result[j][1] === "依頼を受ける"){ 20 var file = values[j][4]; 21 ; 22 } 23 24 var resipient = result[1][1]; 25 var subject = "関連資料をメールでお送りします"; 26 var body = file; 27 28 GmailApp.sendEmail(resipient,subject,body); 29 } 30}

試したこと

ひとまず、var resipient = "実在するメールアドレス" としてみたところ、
メールは送られてきます。(ただし、本文中にGoogleドライブの共有URLは送られてきません)

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

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

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

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

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

CHERRY

2021/03/02 22:04

sendEmail の前で各変数の中身を確認するとどうなっていますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問