スプレッドシート側から、メール配信処理ができるようにonOpenでスプレッドシートに機能を追加しようとしています。
function onOpen(){ var sheet = SpreadsheetApp.getActiveSpreadsheet(); //メニュー配列 var entries=[ { name: "メールを送信", functionName: "sendEMail" } ]; sheet.addMenu("メール",entries); //メニューを追加 };
こちら自体は無事に動作し、スプレッドシートに機能追加できました。
その後、下記のようにこれまでのコードに追記いたしましたところ、エラーが出ます。
「スクリプト関数 sendEmails が見つかりません。詳しくは https://developers.google.com/apps-script/reference/base/menu#addItem(String,String) 」
です。
追加する位置がおかしいのでしょうか。いくつか場所を試してみたのですが、うまく動作しません。
お分かりになる方、対処をお知らせいただけますでしょうか。
どうぞよろしくお願いいたします。
function myFunction() { /* スプレッドシートのシートを取得と準備 */ var spreadsheet=SpreadsheetApp.getActiveSheet(); //シートを取得 var rowSheet=spreadsheet.getDataRange().getLastRow(); //シートの使用範囲のうち最終行を取得 var EMAIL_SENT = "送信済み"; /* ドキュメントを取得する */ var docTest=DocumentApp.openById("ドキュメントID"); //ドキュメントをIDで取得 var strDoc=docTest.getBody().getText(); //ドキュメントの内容を取得 ///////////////////////////////////////////// // IDで指定したスプレッドシートをPDF化したい場合// //////////////////////////////////////////// // PDF化したいスプレッドシートのID var ssid = "スプレッドシートID";// スプレッドシートのID // シートID(gid)を指定 var sheetid = "シートID"; // 指定したスプレッドシートを開く var ss = SpreadsheetApp.openById(ssid); //スプレッドシート上のシートをPDFへ変換 var pdf = ss.getAs('application/pdf'); var pdfname = "添付ファイル.pdf"; //PDFをドライブへ作成(保存されます) DriveApp.createFile(pdf).setName(pdfname); /* メール表題、fromアドレス、差出人名を準備 */ var strSubject="タイトル"; //表題 var strFrom="アドレス"; //From var strSender="なまえ"; //差出人 /* シートの全ての行について社名、姓名を差し込みログに表示*/ for(var i=2;i<=rowSheet;i++){ var strCompany=spreadsheet.getRange(i,1).getValue(); //社名 var strSecond=spreadsheet.getRange(i,2).getValue(); //姓 var strFirst=spreadsheet.getRange(i,3).getValue(); //名 var strTo=spreadsheet.getRange(i,4).getValue(); //toアドレス var strBody=strDoc.replace(/{社名}/,strCompany).replace(/{姓}/,strSecond).replace(/{名}/,strFirst); //社名、姓名を置換 Logger.log(strBody); //ドキュメントの内容をログに表示 var emailSent = spreadsheet.getRange(i,5).getValue() //E列 if (emailSent != EMAIL_SENT) { var subject = strTo;//toアドレス GmailApp.sendEmail( strTo, strSubject, strBody, { attachments:pdf, from: strFrom, name: strSender } ); function onOpen(){ var sheet = SpreadsheetApp.getActiveSpreadsheet(); //メニュー配列 var entries=[ { name: "メールを送信", functionName: "sendEMail" } ]; sheet.addMenu("メール",entries); //メニューを追加 };

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/12 14:05
2018/01/12 14:47
2018/01/15 00:57