ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS】スプレッドシートの特定の範囲をPDF出力する方法(コピペでできる)
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- 現在のスプレッドシートをPDFで出力しメールに添付することができます。
- さらに特定の範囲や用紙の指定といったPDF出力時の細かい設定もできます。
なので、サクッとマスターして
と答えてあげてください。
動画はこちら
シートはこちら
*クリックすることでシートが開きます。(コピーしてお使いください)
スクリプト
現在のシートをメールに添付し送信する
/**
* 現在のシートをメールに添付し送信する
*/
function SendMailattachPDF() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const ssId = ss.getId()
const sh = ss.getActiveSheet()
const shname = sh.getSheetName() + ".pdf" //シート名の取得
const sheetId = sh.getSheetId()
//---------------------------設定---------------------------
const TO = "送信先のメールアドレス"
const SUBJECT = `【${shname}】をお送りします。` //メールのタイトル
const BODY = `メールの本文 例 \n ${shname}をお送りします。 `
//---------------------------設定---------------------------
// スプレッドシートをPDF出力するためのURL
const url = 'https://docs.google.com/spreadsheets/d/' + ssId + '/export?'
// PDF出力のオプションを設定
const options = 'exportFormat=pdf&format=pdf'
+ '&gid=' + sheetId //PDFにするシートの「シートID」
const requestUrl = url + options
//API使用のためのOAuth認証
const token = ScriptApp.getOAuthToken()
const params = {
'headers': { 'Authorization': 'Bearer ' + token },
'muteHttpExceptions': true
}
const response = UrlFetchApp.fetch(requestUrl, params)
//Blobオブジェクトを作成
const pdfblob = response.getBlob()
pdfblob.setName(shname) //PDFファイル名を設定
GmailApp.sendEmail(
TO,
SUBJECT,
BODY,
{ attachments: pdfblob })
}
ポイント
メール送信
前回のスクリプトの最後の部分がファイル出力なので
この部分を
// 指定のフォルダにPDFファイルを作成
const folder = DriveApp.getFolderById(FOLDER_ID)
folder.createFile(pdfblob)
sendEmail() に変更することでメール送信できます。
GmailApp.sendEmail(.....pdfblob )
PDF出力時の詳細設定
PDF出力時の設定を変更する場合は、以下を追加します。
//-------------------------設定------------------------
// 出力する範囲
const RANGE_F = 'A1' //開始位置
const RANGE_T = 'Z100' //終了位置
// サイズ
const SIZE = 'A3'
// 縦横
const TATE = 'true' //横の場合は 'false'
//-------------------------設定------------------------
// PDF出力のオプションを設定
const options = 'exportFormat=pdf&format=pdf'
+ '&gid=' + sheetId //PDFにするシートの「シートID」
+ '&portrait=' + TATE //true(縦) or false(横)
+ '&size=' + SIZE //印刷サイズ
+ '&gridlines=false' //グリッドラインの表示有無
+ '&range=' + RANGE_F + '%3A' + RANGE_T //セル範囲を指定 %3A はコロン(:)を表す
+ '&top_margin=0.50' //上の余白
+ '&right_margin=0.50' //右の余白
+ '&bottom_margin=0.50' //下の余白
+ '&left_margin=0.50' //左の余白
+ '&sheetnames=false' //シート名の表示有無
+ '&printtitle=false' //スプレッドシート名の表示有無
+ '&pagenum=UNDEFINED' //ページ番号をどこに入れるか
+ '&scale=4' //1= 標準100%, 2= 幅に合わせる, 3= 高さに合わせる, 4= ページに合わせる
+ '&horizontal_alignment=CENTER'//水平方向の位置
+ '&vertical_alignment=CENTER'//垂直方向の位置
+ '&gridlines=false' //グリッドラインの表示有無
+ '&fzr=false' //固定行の表示有無
+ '&fzc=false' //固定列の表示有無
詳細は動画をご覧ください
ccを複数指定する場合はこちら
ボタンを付加する方法
最後までご覧いただきありがとうございます。
つぎはこちら
【GAS】既存のPDFを現在のシートの内容で更新する方法
コメント