GASでスプレッドシートを印刷する方法|PDF出力からメール送信まで完全ガイド
スプレッドシートの内容をGASで印刷できたら便利なのに…そんな方法あるの?

猫男

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
これで、印刷したい人に自動で送れる。まさに業務効率化の極みだ。
まとめ:GASで印刷の自動化
- GASでは直接印刷はできないが、PDF化して実質印刷が可能
- Driveに保存 or Gmail送信など応用多数!
- 定期実行すれば、完全自動印刷フローも作れる
やった!GASで印刷ができるなんて思わなかった〜!

猫男

catman
次は印刷レイアウトの調整にも挑戦してみよう。さらなる自動化の道は続くぞ…