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

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

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

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

Google フォーム

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

Google Apps Script

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

Q&A

解決済

1回答

928閲覧

Googleフォームの「送信」をトリガーにメールを送信したい

10-mo

総合スコア21

Google スプレッドシート

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

Google フォーム

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

Google Apps Script

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

0グッド

0クリップ

投稿2021/09/04 06:08

Googleフォームの「送信」をトリガーにメールを送信をしたいです。スクリプト作ってやってみたのですが、フォームからだとエラー100%でうまくできません。スクリプトからは上手く実行できています。どのようにすれば実行できるのでしょうか?ご教示お願い致します。

併せて、PDFもメールで送りたいのですが、ここに記載してあるコードだとメールを送るたびにPDFが送信されてしまいます。GoogleフォームにPDFが添付された時のみ、そのPDFを送信する仕組みにしたいのですが、こちらもご教示いただけると助かります。

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

エラーコード
Exception: 無効なメール
at sendEmails(コード:25:13)

コード function sendEmails() { var sheet = SpreadsheetApp.getActiveSheet(); var EMAIL_SENT = "送信OK!"; var lastrow = sheet.getLastRow(); var lastcolumn = sheet.getLastColumn(); var dataRange = sheet.getRange(2, 2,lastrow-1,lastcolumn-1) var data = dataRange.getValues(); for (var i = 0; i < data.length; ++i) { var row = data[i]; var emailAddress = row[0]; //B列 var message = row[2]; //D列 var emailSent = row[4]; //F列 //「送信OK!」の場合は無視する if (row[4] === "送信OK!") { continue } if (emailSent != EMAIL_SENT) { var subject = row[1];//C列 //var options = row[3];//E列 //オプションで添付ファイルを設定する //var attachImg = DriveApp.getFileById("ドライブ内").getBlob(); //var options = { //"attachments":attachImg, //}; MailApp.sendEmail(emailAddress, subject, message); sheet.getRange(2 + i,lastcolumn).setValue(EMAIL_SENT); SpreadsheetApp.flush(); } } }

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

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

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

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

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

guest

回答1

0

ベストアンサー

var sheet = SpreadsheetApp.getActiveSheet();

フォームからのトリガーなら、スプレッドシートはSpreadsheetApp.openByIdSpreadsheetApp.openByUrlで開く必要があるのではないでしょうか。

投稿2021/09/04 06:17

itagagaki

総合スコア8402

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

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

10-mo

2021/09/04 09:16

ご回答いただきありがとうございます! 変えて実行してみたのですが、エラーで返ってきました。 Exception: パラメータ(String,number,number,number)が SpreadsheetApp.Spreadsheet.getRange のメソッドのシグネチャと一致しません。 at sendEmails(コード:6:25)
10-mo

2021/09/04 09:23

すみません、シートネーム書き忘れていました(-_-;) 無事に動きました! ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問