ADVERTISEMENT

【Googleドキュメント】Apps ScriptでDocsをPDF化してメール送信!レポート配信

【Googleドキュメント】Apps ScriptでDocsをPDF化してメール送信!レポート配信
🛡️ 超解決

毎月のレポートや議事録を、手作業でPDFに変換してからメールに添付して送信していませんか。この作業は意外と手間がかかり、ミスも起こりやすいものです。Google Apps Scriptを使えば、Googleドキュメントを自動でPDF化し、指定した宛先にメール送信する一連の流れを完全に自動化できます。この記事では、Apps Scriptを利用してドキュメントをPDFに変換し、メールで配信する具体的な手順を詳しく解説します。

スクリプトの書き方からテスト実行、実運用の注意点までをカバーしますので、初めての方でも安心して取り組めます。この記事を読み終えるころには、定型的なレポート配信作業から解放され、別の重要な業務に時間を割けるようになるでしょう。

【要点】GoogleドキュメントのPDF自動メール配信を実現するApps Scriptの基本

  • スクリプトエディタの起動: メニューの「拡張機能」→「Apps Script」からスクリプト編集画面を開きます。
  • PDF変換とメール送信の関数: DriveApp.getFileById() でドキュメントを取得し、blob.getAs('application/pdf') でPDF化、GmailApp.sendEmail() で添付送信します。
  • 定期的な自動実行: トリガー機能を使って毎日や毎週の決まった時間にスクリプトを実行できます。

ADVERTISEMENT

Apps Scriptでレポート配信を自動化する概要と準備

Google Apps Scriptは、Googleの各種サービスを連携・自動化するためのスクリプト環境です。この仕組みを使うと、特定のGoogleドキュメントをPDFファイルに変換し、そのファイルをメールに添付して送信する処理を数行のコードで実現できます。手動で行う場合、ドキュメントを開き、PDF形式でダウンロードし、メールを作成して添付し、送信するという複数のステップが必要です。Apps Scriptを使えば、この一連の流れをボタン一つ、またはスケジュールに従って自動実行できます。

準備として、次のものが必要です。

  • Googleアカウント(Gmailが使用可能なもの)
  • PDF化したいGoogleドキュメントファイル
  • 送信先のメールアドレス(テスト用に自分のアドレスを推奨)

スクリプトの作成には、GoogleドキュメントのメニューからApps Scriptエディタを開きます。エディタではJavaScriptベースのコードを記述しますが、特に難しい知識は不要です。この記事で紹介するコードをそのままコピーして使えます。

PDF変換・メール送信のスクリプトを作成する手順

スクリプトエディタを開く

  1. Googleドキュメントを開く
    PDF化して送信したいドキュメントをGoogleドキュメントで開きます。このドキュメントが処理の対象になります。
  2. Apps Scriptエディタを起動する
    メニューバーから「拡張機能」→「Apps Script」をクリックします。新しいタブでスクリプトエディタが開きます。
  3. プロジェクトに名前を付ける
    左上の「無題のプロジェクト」をクリックして、わかりやすい名前(例:レポート配信スクリプト)に変更します。

スクリプトコードを記述する

  1. デフォルトのコードを削除する
    エディタに表示されている function myFunction() { } をすべて削除します。
  2. メイン関数を記述する
    以下のコードをコピーして貼り付けます。この関数はドキュメントをPDF化し、メールで送信します。
    function sendDocAsPDF() {
      var doc = DocumentApp.getActiveDocument();
      var docId = doc.getId();
      var docName = doc.getName();
      var pdfBlob = DriveApp.getFileById(docId).getAs('application/pdf');
      pdfBlob.setName(docName + '.pdf');
      
      var recipient = 'example@example.com'; // ここを送信先アドレスに変更
      var subject = 'レポート:' + docName;
      var body = 'こちらが最新のレポートです。';
      
      GmailApp.sendEmail(recipient, subject, body, {
        attachments: [pdfBlob]
      });
    }
    
  3. 送信先アドレスを変更する
    recipient の値を実際のメールアドレスに書き換えます。テストの際は自分のアドレスを設定してください。
  4. スクリプトを保存する
    Ctrl+S(Macの場合はCmd+S)を押すか、ツールバーのフロッピーディスクアイコンをクリックして保存します。

スクリプトをテスト実行する

  1. 関数を選択して実行する
    ツールバーの関数選択ドロップダウンから「sendDocAsPDF」を選び、その横の「実行」ボタンをクリックします。
  2. 承認を求められた場合
    初回実行時には権限の確認画面が表示されます。「権限を確認」をクリックし、自分のGoogleアカウントを選択、さらに「許可」をクリックしてスクリプトの実行を承認します。
  3. メールを確認する
    スクリプトが正常に動けば、設定した受信者にPDFが添付されたメールが届きます。件名や本文、添付ファイルが正しいか確認してください。

よくあるトラブルと対処法

スクリプト実行時に権限エラーが出る

初回実行時には、スクリプトがドキュメントやGmailにアクセスするための承認が必要です。承認画面で「許可」をクリックしなかった場合は、スクリプトがエラーになります。その場合は、スクリプトエディタの「トリガー」メニューから「承認が必要なトリガー」を確認し、再度承認を行ってください。また、一度承認するとしばらくは再承認不要ですが、スクリプトの内容を大幅に変更した場合は再度承認が求められることがあります。

PDFのファイル名が意図と異なる

コード内で pdfBlob.setName() を使ってファイル名を設定しています。ドキュメントのタイトルそのままを使うので、タイトルに記号や長すぎる文字列が含まれているとメール添付時にエラーになる可能性があります。その場合は、ファイル名を簡潔なものに変更するか、スクリプト内でファイル名を生成する部分を修正してください。例えば、日付を追加したい場合は var date = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyyMMdd'); var fileName = 'Report_' + date + '.pdf'; のようにします。

複数のドキュメントを一括で送信したい

レポートが複数ある場合は、スクリプトを修正して複数のファイルを処理できます。例えば、ドキュメントのIDをリストで保持し、ループを使って各ドキュメントをPDF化して一つのメールにまとめて添付する方法があります。ただし、添付ファイルの合計サイズがGmailの制限(25MB)を超えないよう注意してください。

ADVERTISEMENT

Apps Scriptと他の方法の比較

方法 自動化レベル カスタマイズ性 設定の手間
手動でPDF保存&メール送信 低い(毎回手作業) 高い(任意の編集が可能) 中程度(慣れれば簡単)
Google Apps Script 高い(定期実行も可能) 非常に高い(コードで自由に制御) やや高い(初期設定とコード記述が必要)
サードパーティのアドオン 中程度(アドオンによる) 低い(機能が限定される) 低い(インストールしてすぐ使える)

この表からわかるように、Apps Scriptは自動化とカスタマイズのバランスが優れており、定期的なレポート配信には最適な方法です。一度設定すればメンテナンスもほとんど必要ありません。

まとめ

この記事では、Google Apps Scriptを使ってドキュメントをPDF化し、メールで送信する方法を解説しました。サンプルコードをコピーして送信先アドレスを変えるだけで、手作業の繰り返しから解放されます。さらに、トリガーを設定すれば毎朝決まった時間に自動でレポートを配信することも可能です。まずはテスト用のドキュメントで動作を確認し、徐々に本番のレポートに適用してみてください。スクリプトに日付やファイル名の加工を加えると、より実用的な配信システムになります。


ADVERTISEMENT

📄
Googleドキュメントトラブル完全解決データベースこの記事以外にも、書式・共有・Apps Script・引用など様々な困りごとへの解決策をまとめています。逆引きに活用してください。
この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。