JetB株式会社

【GAS】スプレッドシートをPDFに変換&メールに添付して送る方法。

スプレッドシートをPDFに変換して、メールに添付して送る。

請求書や納品書、資料など、スプレッドシートで作成している方も多いと思います。

通常であれば、シートをPDFファイルにしてダウンロード⇒メールを作成&ファイルを添付して送信という操作になると思いますが、もっと簡単にできないか?という事で、
今回は、GAS(Google Apps Script)を使って、スプレッドシートのPDF化からメール送信まで一気にできる方法をご紹介いたします。

ソースコード

解説

①現在開いているスプレッドシート(ブック)を取得する

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

②現在開いているスプレッドシート(ブック)のIDを取得する

var key = spreadsheet.getId();

③PDFにしたいワークシートを指定する

var sheetName = spreadsheet.getSheetByName(“(例)sheet1”);

④PDFにしたいワークシートのgidを取得する

var gid = sheetName.getSheetId();

⑤アクセストークンを取得する

var token = ScriptApp.getOAuthToken();

⑥PDFのURLを作る

var url = “https://docs.google.com/spreadsheets/d/” + key + “/export?gid=” + gid + “&format=pdf&portrait=false&size=A4&gridlines=false&fitw=true”

⑦PDF生成するURLをfetchする

var pdf = UrlFetchApp.fetch(url, {headers: {‘Authorization’: ‘Bearer ‘ + token}}).getBlob().setName(“ファイル名を入力”+”.pdf”);

⑧作成したPDFをメールに添付して送信します。

var to = “送信先のメールアドレスを入力”;
var subject = “メールのタイトルを入力”;
var body =”メールの本文を入力”;

GmailApp.sendEmail(to,

subject,

body,

{attachments: pdf})

}

PDFの書式設定

上記のコードでは、
・A4サイズ
・横向き
・グリッドなし
・幅を用紙に合わせる
という書式になっています。

6のPDFのURLを作る箇所で
&format=pdf&portrait=false&size=A4&gridlines=false&fitw=true
の部分を以下のように変更する事で、書式の変更が可能です。

・ファイル形式の指定(pdf / csv / xls / xlsx) ⇒ exportFormat
・ファイル形式の指定(pdf / csv / xls / xlsx) ⇒ format
・用紙サイズの指定(legal / letter / A4) ⇒ size
・用紙の向き(true:縦向き / false:横向き) ⇒ portrait
・幅を用紙に合わせるか(true / false) ⇒ fitw
・シート名をPDF上部に表示するか(true / false) ⇒ sheetnames
・スプレッドシート名をPDF上部に表示するか(true / false) ⇒ printtitle
・ページ番号の有無(true / false) ⇒ pagenumbers
・グリッドラインの表示有無(true / false) ⇒ gridlines
・固定行の表示有無(true / false) ⇒ fzr

まとめ

今回は、一番シンプルに実装する方法のご紹介でした。
他にも宛先を複数設定したり、本文をより充実させたり、送信時のアラート設定、添付ファイルの複数化などより便利な仕様を追加する事もすので、次回以降、ご紹介していきたいと思います。