earthpg:GAS専門のプログラミングスクール

GASでスプレッドシートを印刷する方法|PDF出力からメール送信まで完全ガイド

スプレッドシートの内容をGASで印刷できたら便利なのに…そんな方法あるの?
猫男
猫男
catman
catman
ふふふ、それもGASなら可能だ。catmanが伝授しよう。

GASで「印刷」ってどうやるの?

GAS(Google Apps Script)には、直接「プリンターで印刷する」命令はありません。

でも、

PDFとして出力 → 自動ダウンロード or メール添付

という形で「印刷と同じようなこと」はできます!

印刷用にPDFを作成する

まずは、スプレッドシートの特定シートをPDFに変換する基本コードです:

 function exportSheetToPDF() { 
   const ss = SpreadsheetApp.getActiveSpreadsheet(); 
   const sheetId = ss.getActiveSheet().getSheetId(); 
   const url = ss.getUrl().replace(/edit$/, '') + 'export?format=pdf' + '&gid=' + sheetId + '&portrait=true' + '&fitw=true' + '&sheetnames=false' + '&printtitle=false' + '&pagenumbers=false' + '&gridlines=false' + '&fzr=false'; const token = ScriptApp.getOAuthToken(); 
   const response = UrlFetchApp.fetch(url, { headers: { Authorization: 'Bearer ' + token } }); 
   const blob = response.getBlob().setName(ss.getName() + '.pdf'); 
   DriveApp.createFile(blob); 
} 
えっ、GASでPDF作ってドライブに保存できるの!?
猫男
猫男

PDFをメールで送って印刷

さらに自動でメール送信もできます:

 function sendSheetAsPDF() { 
  const ss = SpreadsheetApp.getActiveSpreadsheet(); 
  const sheetId = ss.getActiveSheet().getSheetId(); 
  const url = ss.getUrl().replace(/edit$/, '') + 'export?format=pdf' + '&gid=' + sheetId; 
  const token = ScriptApp.getOAuthToken(); 
  const response = UrlFetchApp.fetch(url, { headers: { Authorization: 'Bearer ' + token } }); 
  const blob = response.getBlob().setName(ss.getName() + '.pdf'); 
  GmailApp.sendEmail('your-email@example.com', 'シートの印刷用PDF', 'こちらが印刷用のPDFです', { attachments: [blob] }); 
} 
catman
catman
これで、印刷したい人に自動で送れる。まさに業務効率化の極みだ。

まとめ:GASで印刷の自動化

  • GASでは直接印刷はできないが、PDF化して実質印刷が可能
  • Driveに保存 or Gmail送信など応用多数!
  • 定期実行+PDF化+メール送信で、完全自動印刷フローも作れる
やった!GASで印刷ができるなんて思わなかった〜!
猫男
猫男
catman
catman
次は印刷レイアウトの調整にも挑戦してみよう。さらなる自動化の道は続くぞ…