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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Google Apps Script

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

Q&A

解決済

1回答

331閲覧

GAS フォーム回答と同時にメールの自動配信 エラーについて

renren.778899

総合スコア7

Google Apps Script

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

0グッド

0クリップ

投稿2020/02/05 02:18

いつもお世話になっております。

現在、フォーム送信時にスプレットシートに集約した回答内容を、指定して宛先に
自動で送信するというスクリプトを組んでいます。

メールの2重送信を防ぐために、一度スプレットのスクリプトに書いていたコードを
フォームのスクリプトに組み込みたく書き換えたいのですが、以下エラーが発生し
うまくいきません。

定義の2行目に
<getSheetByNameが呼び出せません>

コード自体ネットから拾ってきたものなので、当方あまり詳しくありません・・
どなたか、どこをどう書き換えたらいいか、ご教示頂けませんか。。
一人で考えて数日たちますが、解決できません・・

function sendMailGoogleForm() { Logger.log('sendMailGoogleForm() debug start'); // メール送信先 var admin = "xxxx.xxxx@xxx.co.jp"; // 管理者(必須)→管理者アドレス var sendername = "○○○○";//送信者名(必須) var cc = "xxxx.xxxx@xxx.co.jp"; // var bcc = admin; // Bcc: var reply = admin; // Reply-To: var to = ''; // To: (入力者のアドレスが自動で入ります) var d = new Date(); var day = Utilities.formatDate(d,'JST', 'M/dd'); // -------------------------------------- 定義---------------------- var Spreadsheet = SpreadsheetApp.openById("abcdefgh123456789"); var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("フォームの回答 5");   //スプレッドとシートの指定** var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("宛先リスト"); var atesaki = ss.getRange(3,2).getValue();                              //宛先の指定 // var atesaki2 = ss.getRange(4,2).getValue(); var rows = sheet.getRange(1, 1).getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow(); //A列の最終行を取得する var cols = sheet.getLastColumn(); var rg = sheet.getDataRange(); Logger.log("rows="+rows+" cols="+cols); var tenpo = sheet.getRange(rows, 5).getValue();  //件名に店舗名 var name = sheet.getRange(rows, 6).getValue(); //件名に氏名 // ----------------------------------------------------------------

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

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

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

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

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

renren.778899

2020/02/06 09:10

解決済みに投稿してしまい申し訳ありません。 先日ご教示頂いた内容で、フォームでスクリプトはうごくようになったのですが、 自動配信されるメールが2重、3重になるエラーは解消できませんでした。 トリガーのイベントソースをフォームから にすると解消されると、当サイトの書き込みで見たのですが… もし、他にご存知であれば、大変恐縮なのですがお教え頂けませんでしょうか。 何卒よろしくお願い致します。
guest

回答1

0

ベストアンサー

フォームのトリガーに設定した場合、下記ではスプレッドシートを取得できません。

SpreadsheetApp.getActiveSpreadsheet()

下記で回答のスプレッドシートが取得できているのであれば(宛先シートが回答スプレッドシートにあれば)、

var Spreadsheet = SpreadsheetApp.openById("abcdefgh123456789");

下記のような修正でいけると思います。

var sheet = Spreadsheet.getSheetByName("フォームの回答 5");   //スプレッドとシートの指定** var ss = Spreadsheet.getSheetByName("宛先リスト");

投稿2020/02/05 03:56

macaron_xxx

総合スコア3191

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

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

renren.778899

2020/02/05 07:42

おっしゃる通りに書き換えたら、できました!! すっごいうれしいです>< 一人で何日も悩んでいたのがウソみたいです! 本当に助かりました!! またどうぞよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問