Googleスプレッドシートの情報からPDFを自動作成する方法(GAS活用)📄🚀

NO IMAGE

はじめに

Googleスプレッドシートに入力された情報をPDFに自動変換したいことはありませんか?

📌 例えば、こんな場面で便利!

  • 請求書や領収書をPDF化して顧客に送る
  • シフト表やレポートをPDFとして保存・共有
  • GASでワンクリックでPDF作成を自動化

本記事では、Google Apps Script(GAS)を使ってスプレッドシートのデータをPDFに変換する方法を詳しく解説します!


ステップ①:PDF化したいスプレッドシートを準備

まず、Googleスプレッドシートを作成し、以下のようなレイアウトを作りましょう。

A列B列C列
顧客名商品名金額
田中商事ノートPC150,000円
鈴木工業プリンター35,000円

シート名を「請求書」にする(自由に変更可)
A1:C1にヘッダーを設定


ステップ②:PDF化するGASスクリプトを作成

次に、Apps Scriptエディタを開いてスクリプトを作成します。

  1. Googleスプレッドシートを開く
  2. 「拡張機能」 → 「Apps Script」を選択
  3. 以下のコードをコピー&ペースト
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を作成

  1. Apps Scriptエディタで createPDF() を選択
  2. 「実行」ボタンをクリック!
  3. GoogleドライブにPDFが自動保存される!🎉

📌 生成されたPDFのURLがログに表示されるので確認!


ステップ④:スプレッドシートにボタンを設置(簡単実行)

ボタン1つでPDFを作成できるようにすると便利です!

  1. スプレッドシートを開く
  2. 「挿入」 → 「図形描画」 を選択
  3. 「ボタン」デザインを作成し、テキストに「PDF作成」 と入力
  4. ボタンを右クリック → 「スクリプトを割り当て」
  5. 関数名 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を作成可能!
ボタンを設置して誰でも簡単に使えるように!
応用編でメール送信機能も追加!📧

GASカテゴリの最新記事