アクティブスプレッドシート内にあるグラフを取得し、メールに添付するスクリプトですが、
下記のスクリプトを実行すると、「サービスエラー:スプレッドシート」となりメール送信ができません。
var image = chart.getBlob().getAs('image/png').setName('グラフ.png');
解決法教えてください。
function graphMail() { //スプレッドシートを取得 var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('シート名'); var ui = SpreadsheetApp.getUi(); var charts = sheet.getCharts(); for (var i in charts) { var chart = charts[i]; var image = chart.getBlob().getAs('image/png').setName('グラフ.png'); var folderId = 'ID'; try { var folder = DriveApp.getFolderById(folderId); folder.createFile(image); var files = folder.getFiles(); while (files.hasNext()) { var attachments= []; attachments.push(files.next()); } } catch (e) { ui.alert(e.message); return; } } var subject = 'グラフメールテスト'; var body ='テスト'; var to = 'メールアドレス'; GmailApp.sendEmail( to, subject, body, {attachments: attachments} ); } function GetUser() { var objUser = Session.getActiveUser(); return objUser.getEmail(); }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。