「.getAs("application/pdf");」では指定したスプレッドシートファイルに含まれる全シートをPDFで出力することのみ可能なようです。従って単一のシートに対して指定してエラーとなったものと思います。
先人の知恵の拝借物ですが、私も使わせていただいた、単一のシートを指定してpdf化するコードが下記の場所に詳しい解説とともにあります。
https://www.virment.com/create-pdf-google-apps-script/
上記のコードでgoogleDriveに作成したpdfファイル名からファイルIDを取得するには下記の関数の返し値で取得できます。
//ファイルID 取得
//引数:folderId=googleDriveのフォルダID
// fileName=同フォルダ内の指定ファイル名
//返し値:fileNameで指定したファイル名のファイルID
function getfileID(folderId,fileName){
var folder = DriveApp.getFolderById(folderId)
var files = folder.getFiles()
while(files.hasNext()) {
var buff = files.next();
if (buff.getName()==fileName){
return buff.getId()
}
};
}
またpdfファイルを添付したメール送付は、下記の命令文記述になります。
// 添付ファイル用の配列を作成
var attachmentFiles = new Array();
// 添付ファイルを取得
var attachment_Id = "googleDriveのpdfファイルid";
var attachment;
if (attachment_Id != "") {
// Google Driveから添付ファイルのデータを取得
var attachment = DriveApp.getFileById(attachment_Id).getBlob();
if (attachment != null) {
// Gmail添付用のデータを作成(ファイル名、mimeタイプ、バイト配列を指定)
attachmentFiles.push({fileName:attachment.getName(), mimeType:
attachment.getContentType(), content:attachment.getBytes()});
}
var mail_to = "宛先メールアドレス";
var subject = "メール題名";
var body = "メール本文";
GmailApp.sendEmail(mail_to, subject, body, {attachments:attachmentFiles});
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。