超簡単!スプレッドシートをPDF化してメール送信で共有する方法!

目安時間 11分

 

Googleスプレッドシート(以下スプレッドシート)をそのまま共有する事はできますが、どこでも誰とでもあらゆる端末で気軽に見られるPDF形式で共有したい時があるのではないでしょうか。

 

PDFはスプレッドシートのメニューからマニュアルでも作成できますが、少しでも手間を減らすためにスクリプトを書いて実現できます。

 

スクリプトを書くなんて小難しいのでチョット面倒くさいですよね。

 

でも色々なところで少しずつ時間の節約をしていく事で大きな時間を生み出し、別の事にその時間を有効活用していきましょう。 

 

今回は、10数行程度のGAS(Google Apps Script)で実現してみましょう。

 

PDFの作成

 

PDFはマニュアルで次のように作成できます。

 

スプレッドシートのメニューバーより、ファイル>ダウンロード>PDFドキュメントで設定を確認し、エクスポートボタンをクリックすればPDFがローカルのダウンロードフォルダに生成されます。

 

GASスクリプトで一発処理

 

ただこのようにPDFを生成するだけであれば通常問題なく出来ると思います。

 

これをGASのスクリプトを用いて一発で処理してみましょう。

 

同時にGoogleドライブに保存しメール送信もやってしまいます。

 

スクリプトの記述(張り付け)

 

以下のスクリプトをエディターに張り付けてください。

 

念のためGoogleスプレッドシートからスクリプトエディタの出し方は、メニューバーのツール>スクリプトエディタと辿ります。

 

 

function createPdf(){

 

const folder = DriveApp.getFolderById('##################################');

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

var sheet = spreadsheet.getSheets()[0];

 

var pdfname = "スプレッドシート.pdf";

var pdf = spreadsheet.getAs('application/pdf');

SpreadsheetApp.getUi().alert("PDFをメールで送ります");

 

folder.createFile(pdf).setName(pdfname);

var email = Session.getActiveUser().getEmail();

var to = "**.....*@***....*****";

 

var subject = "納品スケジュール";

var body ="スケジュールを添付しましたので確認願います。";

GmailApp.sendEmail(to,subject,body,{attachments: pdf})}

 

 

[各コマンドの参考元:Google Developers https://developers.google.com/apps-script

 

スクリプトの解説

 

一行一行確認していきましょう。

 

function createPdf(){      

//①シート情報一覧をPDFに変換する プロシージャをcreatePdf()として定義

 

const folder = DriveApp.getFolderById('##################################');

//②フォルダIDを指定      

 

   var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();    

//③シートのIDを取得-1

 

var sheet = spreadsheet.getSheets()[0];    

//④シートのIDを取得-2

 

var pdfname = "スプレッドシート.pdf";      

//⑤シートの名前を取得

 

   var pdf = spreadsheet.getAs('application/pdf');   

//⑥PDFに変換

 

   SpreadsheetApp.getUi().alert("PDFをメールで送ります");    

//⑦スプレッドシート上にポップアップメッセージを出す

 

  folder.createFile(pdf).setName(pdfname);          

//⑧指定したフォルダにPDFファイルを生成

 

   var email = Session.getActiveUser().getEmail();    

//⑨作成したPDFファイルをメールに添付して送る

 

 

var to = "**.....*@***....*****";   

//⑩送付するメールアドレスを書き込む

 

var subject = "納品スケジュール";   

//⑪タイトルに名前をつける

 

var body ="スケジュールを添付しましたので確認願います。";    

//⑫メール本文への記述内容を書く

 

GmailApp.sendEmail(to, subject, body, {attachments: pdf}) }  

//⑬PDF添付したメールを送る

 

 

スクリプトの実行

 

実行ボタンをクリックして何秒かするとスプレッドシート上にポップアップメッセージが出現し、OKボタンのクリックを催促されます。

 

OKボタンをクリックして、指定したフォルダにPDFが作成され且つメール送付が終了します。

 

成功すればの話です。

 

上手くいかなかった場合

 

スクリプトの記述(張り付け)からコピペして、もしそのまま実行するのであれば次のようなエラーが出ます。

 

 

const folder = DriveApp.getFolderById('##################################');

 

の###..の部分にフォルダのIDを入れて下さい。

フォルダのIDって何を入れればいいの?

 

はい、Googleドライブあるいはドライブ下のフォルダのURLのfolders/以下の部分の緑色部分です。

https://drive.google.com/drive/folders/*********************************

 

メールアドレスも入れましょう。

 

つまりスクリプト青文字部分2箇所を入れ替えて下さいね。

 

事前にGoogleドライブ下にフォルダを作成しておきましょう。

 

上手くいった場合

 

うまく実行できた場合は指定フォルダにPDFファイルが作成されていて、且つGメールの送信済みフォルダにメールがあるはずです。

 

送信先としてGメール以外でも送信できるので先ずは試しに自分の別メールへ送ってみましょう。

 

又、スクリプト中の緑色部分の文は好きなように変えてみてくださいね。

 

 

まとめ

 

いかがだったでしょうか? 

うまく動かせたでしょうか?

 

場合によっては、プログラムが途中でとまってしまい実行に失敗する事もあるでしょう。

 

プログラムは上から順番に実行されるので、必ず止まってしまう所で何らかの原因があるはずです。

 

上手くいかなかったら、その部分の何が問題なのか不明であれば先頭に//を加えてコメントアウトするなり別のコマンドに変えてみるなりしてみましょう。

 

今回ご紹介したものでさらに細かな機能を追加したいなどお思いであれば、

コマンドスクリプトは色々な種類があるので色々試して命令を変えて、是非ともご自身の目的にあうプログラムに発展させてみて下さい。

 

超ブラック勤めリーマンの副業収入を見てみる

会社員で、時間が全然取れなくて
いつも精神が削られてる日々を過ごしていた
ゆうたくと申します。

 

で、あんた誰ですか?ってなると思いますので
簡単に自己紹介をさせて頂きます。

 

愛知県名古屋市生まれ・育ちの
ブラック企業勤めの会社員です。
時間がなくて、超ハードです。

 

たいした才能も特技もない
面倒臭がりのダメダメ人間で、いつも忙しいとか
時間がないが口癖のわたしが副収入を
手に入れることができました。

 

正直、だれでもやりゃできちゃうと思います。

 

面倒くさがりの、時間拘束の多い会社員しながらでも稼ぐことに繋がったかを以下の記事で公開しています。

ゆうたくの面倒くさがりっぷりを詳しくみてみる

 

 

激務でも関係なくなるスマホ戦略はこちらから

時間のとれないサラリーマンのわたしでも

たったの3か月で実践できた

副業収入の作り方はこちら

↓↓↓↓↓↓

コメントフォーム

名前 

 

メールアドレス 

 

URL (空白でもOKです)

 

コメント

トラックバックURL: 
プロフィール

失敗ばかりの人生だったけど

その失敗談を惜しみなく発信します

ブ○ック企業の営業職。

国内海外各地へ出張多数

スマホ1つで副業開始!

パソコン苦手でも成果が出るまでの道筋を発信!

外注さん100人以上雇ってます。

kindle出しました。

詳しいプロフィール


<人気ブログランキング>
応援よろしくお願いします

カテゴリー
ツイッターはこちら
スマホぴっくはこちら