###前提・実現したいこと
スプレッドシートをPDF化し、PDF上の特定のセルに記載のアドレスにPDFを送りたいです。また同時にPDFを指定のファイルに保存したいです。
PDF化はすることができきたのですが、PDF付きのメールが送られません。(エラーコードは出ていません。)
どこのコードが間違っているかわからないためお力添え頂けますと幸いです。
該当のソースコード
function myFunction(){
var folderid = "フォルダID";
// 現在開いているスプレッドシートを取得
var ss = SpreadsheetApp.getActiveSpreadsheet();
// 現在開いているスプレッドシートのIDを取得
var ssid = ss.getId();
// 現在開いているスプレッドシートのシートIDを取得
var sheetid = ss.getActiveSheet().getSheetId();
// ファイル名に使用する名前を取得
var customer_name = ss.getRange("C29").getValue() + " " + ss.getRange("D8").getValue();
// スプレッドシートのC29に顧客の名前、D8に作成者の名前が入っているため、それをファイル名用に取得
// PDF作成関数
createPDF( folderid, ssid, sheetid, customer_name );
}
// PDF作成関数 引数は(folderid:保存先フォルダID, ssid:PDF化するスプレッドシートID, sheetid:PDF化するシートID, filename:PDFの名前)
function createPDF(folderid, ssid, sheetid, filename){
// PDFファイルの保存先となるフォルダをフォルダIDで指定
var folder = DriveApp.getFolderById(folderid);
// スプレッドシートをPDFにエクスポートするためのURL。このURLに色々なオプションを付けてPDFを作成
var url = "https://docs.google.com/spreadsheets/d/SSID/export?".replace("SSID", ssid);
// PDF作成のオプションを指定
var opts = {
exportFormat: "pdf", // ファイル形式の指定 pdf / csv / xls / xlsx
format: "pdf", // ファイル形式の指定 pdf / csv / xls / xlsx
size: "A4", // 用紙サイズの指定 legal / letter / A4
portrait: "true", // true → 縦向き、false → 横向き
fitw: "true", // 幅を用紙に合わせるか
range: "A1%3AM62", //A1:M62のレンジ
sheetnames: "false", // シート名をPDF上部に表示するか
printtitle: "false", // スプレッドシート名をPDF上部に表示するか
pagenumbers: "false", // ページ番号の有無
gridlines: "false", // グリッドラインの表示有無
fzr: "false", // 固定行の表示有無
gid: sheetid // シートIDを指定 sheetidは引数で取得
};
var url_ext = [];
// 上記のoptsのオプション名と値を「=」で繋げて配列url_extに格納
for( optName in opts ){
url_ext.push( optName + "=" + opts[optName] );
}
// url_extの各要素を「&」で繋げる
var options = url_ext.join("&");
// API使用のためのOAuth認証
var token = ScriptApp.getOAuthToken();
// PDF作成 var response = UrlFetchApp.fetch(url + options, { headers: { 'Authorization': 'Bearer ' + token } }); // var blob = response.getBlob().setName(filename + '.pdf');
//}
// PDFを指定したフォルダに保存
folder.createFile(blob);
function sendMail(){
var toAdr = "=D13"; // D13に送信したいアドレスがあります
var ccAdr = "CC アドレス";
var fromAdr = "送信元アドレス";
var subject = "メールのタイトル";
var body ="メールの本文";
var option = {attachments: pdf};
GmailApp.sendEmail(toAdr,
ccAdr,
fromAdr,
subject,
body,
option)
}
}
あなたの回答
tips
プレビュー