こんにちは、もりです!
この記事では「スプレッドシートの指定シートをPDF出力する方法」を紹介します。PDF出力するセル範囲を指定できます。
出力するPDFの保存先は、Googleドライブ内の指定フォルダです。
Contents
スプレッドシートの指定シートをPDF出力する
スプレッドシートの指定シートをPDF出力するスクリプトがこちらです。
- 21行目:PDF出力する「セル範囲」を指定する
 - 41行目:PDF出力先の「フォルダ」を指定する
 
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44  | 
						function exportSheetToPDF(){   const ss = SpreadsheetApp.getActiveSpreadsheet();   // PDF出力するシートを指定   const sheetName = 'test';   const ssId = ss.getId();   const sheetId = ss.getSheetByName(sheetName).getSheetId();   // スプレッドシートをPDF出力するためのURL   const url = 'https://docs.google.com/spreadsheets/d/' + ssId + '/export?'   // PDF出力のオプションを設定   const options = 'exportFormat=pdf&format=pdf'   + '&gid=' + sheetId  //PDFにするシートの「シートID」   + '&portrait=false'  //true(縦) or false(横)   + '&size=A4'         //印刷サイズ   + '&fitw=true'       //true(幅を用紙に合わせる) or false(原寸大)   + '&gridlines=false' //グリッドラインの表示有無   + '&range=A1%3AD5'   //★POINT★セル範囲を指定   // %3A はコロン(:)を表す   const requestUrl = url + options;   //API使用のためのOAuth認証   const token = ScriptApp.getOAuthToken();   const params = {     'headers' : {'Authorization':'Bearer ' + token},     'muteHttpExceptions' : true   };   const response = UrlFetchApp.fetch(requestUrl, params);   //Blobオブジェクトを作成   const blob = response.getBlob();   blob.setName(sheetName + '.pdf'); //PDFファイル名を設定   //指定のフォルダにPDFファイルを作成   const folder = DriveApp.getFolderById('フォルダID');   folder.createFile(blob); }  | 
					
PDF出力する「セル範囲」を指定する
上記スクリプト21行目の「rangeパラメータ」でセル範囲を指定します。
range=開始セルコロン終了セル
→ コロン(:)は%3Aと記述します(URLエンコード)
- A1セル~D5セルを指定する場合の記述
 
range=A1%3AD5
- C5セル~E9セルを指定する場合の記述
 
range=C5%3AE9
こちらのブログを参考にさせていただきました:PDFを作成したい
【実行結果】スクリプトを実行してPDF出力
A1セル~E10セルにデータが入力されたスプレッドシートです。
このスプレッドシートについて、セル範囲(A1~D5)を指定して作成したPDFがこちら。
続いて、C5セル~E9セルを指定した場合の出力結果がこちら。C5セルを起点としてPDFが作成されました。
【おまけ】スプレッドシートが存在するフォルダ内にPDFを出力する
上述のスクリプトは、PDF出力先のフォルダを「フォルダID」で指定しました。これでは、出力先を変えたい時に、スクリプトを書き換えなければなりません。
41行目以降を下記のように変更すると、スプレッドシートが存在するフォルダ内にPDFを出力することができます。
| 
					 1 2 3 4 5  | 
						//このスプレッドシートが存在するフォルダにPDFファイルを作成 const parentFolders = DriveApp.getFileById(ss.getId()).getParents(); const folderId = parentFolders.next().getId(); const folder = DriveApp.getFolderById(folderId); folder.createFile(blob);  | 
					
以上です!
								
							
							
							
															
							
							
							
															
							
							
							
															
										
					
									