はじめに
Googleスプレッドシートに入力された情報をPDFに自動変換したいことはありませんか?
📌 例えば、こんな場面で便利!
- 請求書や領収書をPDF化して顧客に送る
- シフト表やレポートをPDFとして保存・共有
- GASでワンクリックでPDF作成を自動化
本記事では、Google Apps Script(GAS)を使ってスプレッドシートのデータをPDFに変換する方法を詳しく解説します!
ステップ①:PDF化したいスプレッドシートを準備
まず、Googleスプレッドシートを作成し、以下のようなレイアウトを作りましょう。
A列 | B列 | C列 |
---|---|---|
顧客名 | 商品名 | 金額 |
田中商事 | ノートPC | 150,000円 |
鈴木工業 | プリンター | 35,000円 |
✅ シート名を「請求書」にする(自由に変更可)
✅ A1:C1にヘッダーを設定
ステップ②:PDF化するGASスクリプトを作成
次に、Apps Scriptエディタを開いてスクリプトを作成します。
- Googleスプレッドシートを開く
- 「拡張機能」 → 「Apps Script」を選択
- 以下のコードをコピー&ペースト
function createPDF() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("請求書"); // PDF化するシート名
var folderId = "XXXXX"; // 保存先のGoogleドライブフォルダID
var folder = DriveApp.getFolderById(folderId);
var url = ss.getUrl();
var sheetId = sheet.getSheetId();
var exportUrl = url.replace(/edit$/, '') + "export?format=pdf" +
"&gid=" + sheetId +
"&portrait=true" +
"&size=A4" +
"&fitw=true" +
"&top_margin=0.75&bottom_margin=0.75&left_margin=0.75&right_margin=0.75";
var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(exportUrl, {
headers: {
'Authorization': 'Bearer ' + token
}
});
var pdfBlob = response.getBlob().setName("請求書_" + new Date().toISOString() + ".pdf");
var file = folder.createFile(pdfBlob);
Logger.log("PDF作成完了: " + file.getUrl());
}
✅ シート名を適宜変更(請求書
の部分)
✅ Googleドライブの保存フォルダIDを取得して、XXXXX
に入力
ステップ③:スクリプトを実行してPDFを作成
- Apps Scriptエディタで
createPDF()
を選択 - 「実行」ボタンをクリック!
- GoogleドライブにPDFが自動保存される!🎉
📌 生成されたPDFのURLがログに表示されるので確認!
ステップ④:スプレッドシートにボタンを設置(簡単実行)
ボタン1つでPDFを作成できるようにすると便利です!
- スプレッドシートを開く
- 「挿入」 → 「図形描画」 を選択
- 「ボタン」デザインを作成し、テキストに「PDF作成」 と入力
- ボタンを右クリック → 「スクリプトを割り当て」
- 関数名
createPDF
を入力 → 「OK」
🎉 これで、ボタンをクリックするだけでPDFが作れる!
応用編:PDFを自動でメール送信する
「作成したPDFをメールに自動添付して送信したい」場合は、以下のコードを追加します!
function createPDFandSendEmail() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("請求書");
var folderId = "XXXXX";
var recipient = "example@example.com"; // 送信先メールアドレス
var folder = DriveApp.getFolderById(folderId);
var url = ss.getUrl();
var sheetId = sheet.getSheetId();
var exportUrl = url.replace(/edit$/, '') + "export?format=pdf" +
"&gid=" + sheetId +
"&portrait=true" +
"&size=A4" +
"&fitw=true" +
"&top_margin=0.75&bottom_margin=0.75&left_margin=0.75&right_margin=0.75";
var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(exportUrl, {
headers: {
'Authorization': 'Bearer ' + token
}
});
var pdfBlob = response.getBlob().setName("請求書_" + new Date().toISOString() + ".pdf");
var file = folder.createFile(pdfBlob);
Logger.log("PDF作成完了: " + file.getUrl());
MailApp.sendEmail({
to: recipient,
subject: "請求書の送付",
body: "添付の請求書をご確認ください。",
attachments: [pdfBlob]
});
Logger.log("メール送信完了!");
}
📌 スクリプトを実行すると、PDFを作成し、指定のメールアドレスに送信します!📧
まとめ
✅ スプレッドシートのデータをPDFに変換する方法を解説!
✅ GASを使ってワンクリックでPDFを作成可能!
✅ ボタンを設置して誰でも簡単に使えるように!
✅ 応用編でメール送信機能も追加!📧
コメントを書く