回答編集履歴

1 メアド取得用のGetUser関数を追加

officeforest

officeforest score 130

2019/05/03 22:06  投稿

getAsは細かなオプション指定はできません。
代わりに、以下のようなコードだと特定レンジでPDF化してメールに添付して送りつけることが可能です。
```ここに言語を入力
//特定の範囲のみをPDF化してしまう
function rangepdf(){
 //アクティブシートのIDとGIDを取得する
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getActiveSheet();
 var sheetID = sheet.getSheetId();
 var key = ss.getId();
 var ui = SpreadsheetApp.getUi();
 var token = ScriptApp.getOAuthToken();
 var range = encodeURIComponent("A1:E21"); //ここで範囲指定
 //URLの組み立て
 var url = "https://docs.google.com/spreadsheets/d/" + key + "/export?gid=" + sheetID + "&format=pdf&portrait=false&size=A4&gridlines=false&fitw=true&range=" + range;
 
 //PDF生成するURLをfetchする
 var pdf = UrlFetchApp.fetch(url, {headers: {'Authorization': 'Bearer ' + token}}).getBlob().setName("test" + ".pdf");
   
 //作成したPDFファイルをメールに添付して送る
 var mail = GetUser();
 var subject = 'PDF送りましたよっと。'
 var body = 'テストPDFの送信パート3'
 MailApp.sendEmail(mail, subject, body, {attachments:pdf});
 
 ui.alert("範囲指定で画像PDFが送信されました。")
}
 
//ログインユーザのメールアドレスを取得する  
function GetUser() {  
 var objUser = Session.getActiveUser().getEmail();  
 return objUser;  
}  
```
[サンプルファイル](https://docs.google.com/spreadsheets/d/1Q3YR8OOiPmv3XCk5bY499wAx2zlTYBO91U0bnyKka-U/copy)
他にも色々とこのURLの組み立てで利用できる[オプションは豊富](https://officeforest.org/wp/2018/11/25/google-apps-script%E3%81%A7pdf%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B/)です。組み立てて使えば、向きやサイズなど色々調整可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る