前提・実現したいこと
従業員別に用意されているシートの指定範囲を、毎月指定したフォルダにPDFで出力したい。
ここに質問の内容を詳しく書いてください。
知見が浅い素人にご教授下さい。。。
下記のようなシートが従業員別に用意しており、毎月PDFで指定フォルダに全員分出力したい。
ですが、出力の範囲は毎月変わるため、範囲を特定することはできず、又、毎月範囲を書き換えてもいられない。。。
そこで、「PDF」というシート(画像2枚目)で出力したい月(A1)を指定して実行すれば実現できないかと考えたのですが、頭がパニックになってきました。。。
参考にさせていただいたサイトは以下です。
https://moripro.net/gas-export-pdf-range/
質問の仕方がわかりにくくて申し訳ありません。
ご教授の程、宜しくお願いいたします。
発生している問題・エラーメッセージ
エラーメッセージ ### 該当のソースコード function exportSheetToPDF(){ const ss = SpreadsheetApp.getActiveSpreadsheet(); // PDF出力するシートを指定 const sheetId = ss.getSheetByName('PDF').getRange('A2').getValue(); const sheetName = ss.getSheetByName(sheetId).getSheetName(); //指定月を抽出し、行数をカウント const sheetmonth =ss.getSheetByName('PDF').getRange('A1').getValue(); const ssId = ss.getId(); const sheetID = ss.getSheetByName(sheetId).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(原寸大) + "&top_margin=0.50" //上の余白 + "&right_margin=0.50" //右の余白 + "&bottom_margin=0.50" //下の余白 + "&left_margin=0.50" //左の余白 + "&vertical_alignment=CENTER" //垂直方向の位置 + '&gridlines=false' //グリッドラインの表示有無 + '&range=A5%3ABA36' //★POINT★セル範囲を指定 + "&fzr=true" //固定行の表示有無 + "&fzc=true" //固定列の表示有無; // %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); } ```言語名 Google APP Script ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー