プログラミングはほとんどやったことがないので、非効率なことをしようとしているかもしれませんが、ご了承ください。
Googleフォームを使っています。フォームの回答のスプレッドシートの内容をメールするするものを作っています。
そこで、セルの内容に合わせて、実行するfunctionを決めたいです。
イメージとしては
フォームが投稿されたらトリガーで、
下のコードの中にある
function Start
を実行させて、
投稿された内容に応じて他の
function sendForm1や
function sendFrom2を実行させたいです。
function sendFrom1などは正常に動くことを確認していて、それをトリガーに設定して動かすことはできます。
問題はfunction Startの中身です。
どうしたらfunction Startから他のfunctionを実行させることができるでしょうか?
下のコードでは、まったく動きません。(追記:全く動かないというのは、トリガーをfunction sendForm1に設定する際は、sendForm1が実行されますが、トリガーをfunction Startに設定してもsendForm1やsendForm2が実行されないということです。)
アドバイスをお願いします。
JavaScript
1function sendForm1(e){ 2 3 // 件名、本文 4 var subject = "[SOASOA]"; //件名 5 var body = "\n------------------------------------------------------------"; //本文 6 var sheet = SpreadsheetApp.getActiveSheet(); 7 var lastRow = sheet.getLastRow(); 8 9 var to = "exanmple@gmail.com"; 10 11 MailApp.sendEmail(to, subject +"[資料番号:"+g+"]"+name1 , "[資料番号:"+g+"]" + body); 12} 13 14function sendForm2(e){ 15 16 //ここに処理2個目 17 18 MailApp.sendEmail(to, subject +"[資料番号:"+g+"]"+name1 , "[資料番号:"+g+"]" + body); 19} 20 21/* 22——————————————————————————————————————————— 23この下が問題の部分です!!! 24——————————————————————————————————————————— 25*/ 26 27function Start(){ 28 var sheet = SpreadsheetApp.getActiveSheet(); 29 var lastRow = sheet.getLastRow(); 30 31 // 入力カラム名の指定 32 var PRE='\n['; 33 var AFT=']\n'; 34 var SYOKO = '証拠資料の種類'; //フォーム作成時に設定した項目名 35 var WHEN3= sheet.getRange("B1").getValue();//'資料年月日' 36 var BOOKNAME = '書名・新聞名'; 37 var SITENAME = 'サイト名'; 38 var EDITOR = '編集者'; 39 var PAGENUM = '引用ページ (1件目)'; 40 var GENNUM = '原本番号'; 41 var HONBUN = '引用本文 (1件目)'; //フォーム作成時に設定した項目名 42 var LINK = 'URL'; //フォーム作成時に設定した項目名 43 var RESPECT = '肩書き'; 44 var WRITER = '著者名'; 45 var EVIT = '資料タイトル (1件目)'; //フォーム作成時に設定した項目名 46 var WHO = '投稿者'; //フォーム作成時に設定した項目名 47 48 49 50 switch (sheet.getRange(lastRow, 19).getValue()) { 51 case "": 52 sendForm1(e);//どうしたらここを実行できますか? 53 break; 54 default: 55 sendForm2(e); 56 break; 57 } 58}
回答3件
あなたの回答
tips
プレビュー