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

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

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

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

でも、

「PDFとして出力」 → 「Googleドライブに保存 or Gmailでメール添付して送信」→ 「印刷」

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

 

1. PDFをドライブに保存して印刷

1つ目は、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); 
} 

結果、ドライブに保存したPDFを印刷すれば、スプレッドシートを印刷できます!

えっ、GASでPDF作ってドライブに保存できるの!?
猫男
猫男

2. PDFをGmailで送って印刷

お次はスプレッドシートの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送信など応用多数!
  • 定期実行すれば、完全自動印刷フローも作れる
やった!GASで印刷ができるなんて思わなかった〜!
猫男
猫男
catman
catman
次は印刷レイアウトの調整にも挑戦してみよう。さらなる自動化の道は続くぞ…