GASでスライドをPDFにしてメール送信する方法

先生

GASでGoogleスライドをPDF化してメール送信!自動化であなたの貴重な時間を節約しましょう。

GASでスライドをPDFにしてメール送信:自動化で業務効率UP

Google Apps Script(GAS)を使って、GoogleスライドをPDFに変換し、メールで自動送信する方法を解説します。この自動化により、プレゼンテーション資料の共有や報告業務を効率化できます。

GASは、Google Workspaceの各種サービスを連携させて自動化するための強力なツールです。今回は、そのGASを活用して、スライドのPDF化とメール送信を自動化するスクリプトを作成します。

プログラミング初心者の方でも理解しやすいように、コード例を交えながら丁寧に解説していきます。ぜひ、この記事を参考に、日々の業務を効率化してみてください。

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

まず、Googleスライドを開き、メニューバーから「ツール」→「スクリプトエディタ」を選択してGASのスクリプトエディタを開きます。

新しいプロジェクトが開いたら、スクリプトを記述する準備が完了です。

スクリプトエディタは、GASのコードを記述・実行するための環境です。ここで、スライドをPDFに変換し、メールを送信するスクリプトを作成していきます。

スライドをPDFに変換するコード

以下のコードは、指定したスライドをPDFに変換し、Blobとして取得する関数です。

function slideToPdf(presentationId) {
  // スライドのIDを指定
  var presentation = SlidesApp.openById(presentationId);
  // スライドをPDFとしてエクスポート
  var url = "https://docs.google.com/presentation/d/" + presentationId + "/export/pdf?exportFormat=pdf";
  
  // APIを叩くための認証トークンを取得
  var token = ScriptApp.getOAuthToken();

  // PDFをダウンロードするためのオプション
  var params = {
    "method": "get",
    "headers": {
      "Authorization": "Bearer " +  token
    },
    "muteHttpExceptions": true // HTTP例外を抑制
  };

  // PDFデータを取得
  var response = UrlFetchApp.fetch(url, params);
  var pdfBlob = response.getBlob().setName(presentation.getName() + ".pdf");

  return pdfBlob;
}

この関数は、presentationIdを引数として受け取り、指定されたIDのスライドをPDF形式に変換します。UrlFetchApp.fetchを使用してGoogle Drive APIにアクセスし、PDFデータを取得しています。

muteHttpExceptions: trueを設定することで、HTTPエラーが発生した場合でもスクリプトが停止しないようにしています。これにより、APIへのアクセスが一時的に失敗した場合でも、エラーを適切に処理できます。

メールを送信するコード

次に、作成したPDFをメールで送信するコードです。

function sendPdfByEmail(pdfBlob, recipientEmail, subject, body) {
  // メール送信オプション
  var options = {
    attachments: [pdfBlob]
  };

  // メール送信
  MailApp.sendEmail({
    to: recipientEmail,
    subject: subject,
    body: body,
    attachments: [pdfBlob],
    name: 'スライドPDF自動送信',
  });
}

この関数は、pdfBlob(PDFデータ)、recipientEmail(送信先メールアドレス)、subject(メールの件名)、body(メールの本文)を引数として受け取ります。

MailApp.sendEmailを使用してメールを送信します。attachmentsオプションでPDFデータを添付しています。

メイン関数:スライドをPDFにしてメール送信

最後に、上記二つの関数を組み合わせて、スライドをPDFにしてメール送信するメイン関数を作成します。

function main() {
  // スライドのID、送信先メールアドレス、件名、本文を設定
  var presentationId = "YOUR_SLIDE_ID"; // ここにスライドIDを入力
  var recipientEmail = "your_email@example.com"; // 送信先メールアドレス
  var subject = "【自動送信】スライド資料(PDF)";
  var body = "お疲れ様です。
スライド資料を添付します。ご確認ください。";

  // PDFを作成
  var pdfBlob = slideToPdf(presentationId);

  // メールを送信
  sendPdfByEmail(pdfBlob, recipientEmail, subject, body);

  Logger.log('メール送信完了');
}

この関数では、まず、スライドのID、送信先メールアドレス、件名、本文を設定します。YOUR_SLIDE_IDyour_email@example.comは、ご自身の環境に合わせて変更してください。

次に、slideToPdf関数でPDFを作成し、sendPdfByEmail関数でメールを送信します。

スクリプトを実行する前に、スクリプトエディタのツールバーにある「実行」ボタンをクリックし、権限を承認する必要があります。

トリガー設定で定期実行

GASのトリガーを設定することで、このスクリプトを定期的に実行できます。

スクリプトエディタの左側にある時計のアイコン(トリガー)をクリックし、「トリガーを追加」ボタンをクリックします。

実行する関数、イベントソース、時間間隔などを設定し、保存します。例えば、毎日午前9時に実行するように設定できます。

トリガーを設定することで、毎日の報告業務などを完全に自動化できます。

参考リンク

まとめ

GASを使って、GoogleスライドをPDFに変換し、メールで自動送信する方法を解説しました。この自動化により、資料作成や共有にかかる時間を大幅に削減できます。

今回紹介したコードを参考に、ぜひご自身の業務に合わせてカスタマイズしてみてください。GASを活用することで、様々な業務を自動化し、より効率的な働き方を実現できます。